Como verán estoy tratando de interpretar las listas ligadas y les aseguro que en 10 días tan sólo pude construir este pequeño programa, lo que me falta saber que es más conveniente, declarar las variables estructura cómo globales o dentro la función principal y pasarlas como parámetro a las funciones.-
Por último necesitaría que alguien me ayude a construir la función borrar_elemento, no pude poner ninguna línea.-
Código
#include <stdio.h> #include <stdlib.h> #include <windows.h> struct _agenda{ char nombre[30]; char telefono[12]; struct _agenda *siguiente; }; struct _agenda *primero, *ultimo; void mostrar_menu(); void agregar_elemento(); void mostrar_lista(); int main(void){ char opcion, ch; primero = (struct _agenda *) NULL; ultimo = (struct _agenda *) NULL; do{ mostrar_menu(); switch ( opcion ){ case '1': agregar_elemento(); break; break; case '3': mostrar_lista(primero); break; break; } } while (opcion!='4'); return 0; } void mostrar_menu(){ } /* Con esta función añadimos un elemento al final de la lista */ void agregar_elemento(){ struct _agenda *nuevo; /* reservamos memoria para el nuevo elemento */ if( nuevo == NULL){ } /* el campo siguiente va a ser NULL por ser el último elemento*/ nuevo->siguiente = NULL; /* ahora metemos el nuevo elemento en la lista. lo situamos al final de la lista */ /* comprobamos si la lista está vacía. si primero==NULL es que no hay ningún elemento en la lista. también vale ultimo==NULL */ if( primero == NULL ){ primero = nuevo; ultimo = nuevo; }else{ /* el que hasta ahora era el último tiene que apuntar al nuevo */ ultimo->siguiente = nuevo; /* hacemos que el nuevo sea ahora el último */ ultimo = nuevo; } } void mostrar_lista(){ struct _agenda *auxiliar; /* lo usamos para recorrer la lista */ int i=0; auxiliar = primero; while( auxiliar != NULL ){ auxiliar->nombre,auxiliar->telefono); auxiliar = auxiliar->siguiente; i++; } if( i==0 ){ } } //http://www.santiagoapostol.net/srca/cursoc/cursoc22.html#anadir
Desde ya muchas gracias por la ayuda que deseen brindarme.-
rir3760, no tuve internet por 10 días y no pude responderte al otro tema, luego me ocupo.-
Saludos.
Daniel