viernes, 7 de octubre de 2011

Listas en C.

#include
#include
#include


typedef struct {
char cadena[100];
void *siguiente_elemento;
} Elemento;

typedef Elemento * Lista;


//agregar elemento

void Lista_Agregar(Lista *l, const Elemento *elem){ /* agrega una copia de elem al final de la lista.*/
Elemento * nuevo = (Elemento *) malloc (sizeof (Elemento));
strcpy(nuevo->cadena,elem->cadena);

if (*l == NULL) {
nuevo->siguiente_elemento = *l;
*l = nuevo;
printf("Primer Elemento introducido\n");
}
else {
Elemento *aux = *l;
Elemento *ant = NULL;
while (aux != NULL){
ant = aux;
aux = aux->siguiente_elemento;
}
ant->siguiente_elemento = nuevo;
nuevo->siguiente_elemento = aux;
}

printf("Elemento introduco\n");
}

//imprimir lista

void ImprimirLista(Elemento *aux){
while (aux!=NULL){
printf("%s \n",aux->cadena);
aux=aux->siguiente_elemento;
}
}

//Vaciar lista
void Lista_Vaciar(Lista *l){
Elemento *aux;
while (*l){
aux = *l;
*l = aux->siguiente_elemento;
free(aux);
}

}

No hay comentarios:

Publicar un comentario