Código:
Espero que me podais ayudar a las funciones que faltan, gracias //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"); }