Listas enlazadas
Ejemplo de listas enlazadas usando punteros.
/** * lista.c * Muestra el uso de estructuras * Compilacion: gcc -o lista lista.c * curso de C */ #include <stdio.h> #include <stdlib.h> /* Declaramos la estructura */ struct lista { char *nombre; struct lista *siguiente; }; /* Funciones para manejar lista */ void print_lista (struct lista *l); void add_lista (struct lista *l, char * nombre); main () { struct lista miLista; printf("Vamos a usar la lista. "); miLista.nombre = "Primero"; miLista.siguiente = NULL; print_lista(&miLista); add_lista(&miLista,"Segundo"); print_lista(&miLista); add_lista(&miLista,"Tercero"); print_lista(&miLista); } /* Implementación de print_lista */ void print_lista (struct lista *l) { printf(" LISTA=["); /* Recorre la lista */ while (l != NULL) { printf(" %s,",l->nombre); l = l->siguiente; } printf("] "); } /* Implmentacion add_lista */ void add_lista (struct lista *l, char * nombre) { struct lista *tmp; /* Creamos el nuevo espacio*/ tmp = (struct lista *) malloc(sizeof(struct lista)); tmp->nombre = nombre; tmp->siguiente = NULL; /* Nos vamos al final */ while (l->siguiente != NULL) l = l->siguiente; l->siguiente = tmp; }