17/03/2010, 15:11
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 15 años, 1 mes Puntos: 0 | |
Ayuda TADlista Buenas necesito ayuda sobre un TADlinea que estoy haciendo, ya me falta menos, aver si me podeis ayudar
Código:
//archivo TADlista.h
#ifndef _TADLISTA_H
#define _TADLISTA_H
#include <stdio.h>
#include <stdlib.h>
#define CIERTO 1
#define FALSO 0
#define MAX 3
typedef short int LOGICO;
void CrearListaOrdenada (char *l);
char ExtraerElemento(char *l, int pos);//Falta por hacer
void OrdenarPorBurbuja(char *l);
void OrdenarPorSeleccion(char *l);
int buscarMenor(char *l,int pos);
void OrdenarPorInserccion(char *l);
void InsertarEnOrden(char *l, char elemento);//Falta por hacer
void InvertirOrden(char *l);
char ExtraerPrimero(char *l);//Falta por hacer//coge el primer elemento de la lista //y se lo quita, quedando entonces primero el 2º elemento de la lista
char ExtraerUltimo(char *l);//Falta por hacer
LOGICO EsListaVacia(char *l);//Falta por hacer//si la lista solo contiene *, es que //esta vacio, no estara vacio cuando contenga algun elemento distinto al *
LOGICO EsFinLista(char *l,int pos);//Falta por hacer//si la posición que recibe la lista es la ultima entonce es cierto
void ImprimirVector(char *l);
#endif
//archivo main.c
#include "TADlista.h"
int main()
{
char l[MAX];
int i;
int pos;
int vac;
printf("\nCreando Lista Ordenada...");
CrearListaOrdenada(l);
ImprimirVector(l);
for(i=0;i<MAX;i++)
{
printf("\nIntroduzca elemnto vector %i: ",i);
scanf("%c",&l[i]);
fflush(stdin);
}
vac=EsListaVacia(l);
if(vac==1)
{
printf("\nLista vacia");
}
else
{
printf("\nElementos Introducidos...");
ImprimirVector(l);
//ExtraerElemento(l,pos);
printf("\nOrdenacion por Burbuja...");
OrdenarPorBurbuja(l);
ImprimirVector(l);
printf("\nOrdenacion por Seleccion...");
OrdenarPorSeleccion(l);
ImprimirVector(l);
printf("\nOrdenacion por Inserccion...");
OrdenarPorInserccion(l);
ImprimirVector(l);
//InsertarEnOrden(char *l, char elemento);
printf("\nInvertir Orden...");
InvertirOrden(l);
ImprimirVector(l);
//ExtraerPrimero(char *l);
//ExtraerUltimo(char *l);
//LOGICO EsFinLista(pos);
}
return 0;
}
//archivo TADlista.c
#include "TADlista.h"
void CrearListaOrdenada (char *l)
{
int i;
i=0;
for(i=0;i<MAX;i++)
{
l[i]='*';
}
}
/*char ExtraerElemento(char *l, int pos)
{
}*/
void OrdenarPorBurbuja(char *l)
{
int i,j,temp,num;
num=0;
for(i=0;i<MAX-1;i++)
{
for(j=i+1;j<MAX;j++)
{
if(l[j]<l[i])
{
temp=l[j];
l[j]=l[i];
l[i]=temp;
}
}
}
}
void OrdenarPorSeleccion(char *l)
{
int i;
int posmin, temp;
for(i=0;i<MAX;i++)
{
posmin=buscarMenor(l,i);
temp=l[posmin];
l[posmin]=l[i];
l[i]=temp;
}
}
int buscarMenor (char *l, int pos)
{
int min, j, p;
min=l[pos];
p=pos;
for(j=pos+1;j<MAX;j++)
{
if(l[j]<min)
{
min=l[j];
p=j;
}
}
return p;
}
void OrdenarPorInserccion(char *l)
{
int i,k,x;
for(i=1;i<MAX;i++)
{
x=l[i];
k=i-1;
while(k>=0 && x<l[k])
{
l[k+1]=l[k];
k--;
}
l[k+1]=x;
}
}
/*void InsertarEnOrden(char *l, char elemento)
{
int i,j,temp,num;
num=0;
for(i=0;i<MAX-1;i++)
{
for(j=i+1;j<MAX;j++)
{
if(l[j]<l[i])
{
temp=l[j];
l[j]=l[i];
l[i]=temp;
}
}
}
}*/
void InvertirOrden(char *l)
{
int i,j,temp,num;
num=0;
for(i=0;i<MAX-1;i++)
{
for(j=i+1;j<MAX;j++)
{
if(l[j]>l[i])
{
temp=l[j];
l[j]=l[i];
l[i]=temp;
}
}
}
}
/*
char ExtraerPrimero(char *l)
{
}
char ExtraerUltimo(char *l)
{
}*/
LOGICO EsListaVacia(char *l)
{
int i;
LOGICO vacio;
vacio=FALSO;
i=0;
/*
if(l[i]='*')
{
vacio=CIERTO;
}*/
for(i=0;i<MAX;i++)
{
if(l[i]=='*')
{
vacio=CIERTO;
}
else
{
vacio=FALSO;
}
}
return vacio;
}
/*
LOGICO EsFinLista(char *l,int pos)
{
}
*/
void ImprimirVector(char *l)
{
printf("\nImprimiendo...\n\n");
int i;
printf("[");
for(i=0;i<MAX;i++)
{
printf(" %c ",l[i]);
}
printf("]\n");
}
Espero que me podais ayudar a las funciones que faltan, gracias |