#include#include #include //exit() #include typedef struct _agenda { char nombre[20]; char telefono[12]; _agenda *siguiente; }; void mostrar_menu(); void anadir_elemento(); void mostrar_lista(); _agenda *primero, *ultimo; /*De momento lo haremos con variables globales, más adelante veremos como pasar punteros a funciones*/ void main() { char opcion; primero = (_agenda *) NULL; ultimo = (_agenda *) NULL; do { mostrar_menu(); opcion = getch(); switch ( opcion ) { case '1': anadir_elemento(); break; case '2': printf("Ir pensando como hacer esto :D\n"); break; case '3': mostrar_lista(); break; case '4': exit( 1 ); default: printf( "Opción no válida\n" ); break; } } while (opcion!='4'); } void mostrar_menu() { printf("\n\nMenú:\n=====\n\n"); printf("1.- Añadir elementos\n"); printf("2.- Borrar elementos\n"); printf("3.- Mostrar lista\n"); printf("4.- Salir\n\n"); printf("Escoge una opción: ");fflush(stdin); } /* Con esta función añadimos un elemento al final de la lista */ void anadir_elemento() { _agenda *nuevo; /* reservamos memoria para el nuevo elemento */ nuevo = (_agenda *) malloc (sizeof(_agenda)); if (nuevo==NULL) printf( "No hay memoria disponible!\n"); else { printf("\nNuevo elemento:\n"); printf("Nombre: "); fflush(stdin); gets(nuevo->nombre); printf("Teléfono: "); fflush(stdin); gets(nuevo->telefono); /* el campo siguiente va a ser NULL por ser el último elemento la lista */ nuevo->siguiente = NULL; /* ahora metemos el nuevo elemento en la lista. lo situamos al final de la lista */ /* comprobamos si l0a 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) { printf( "Primer elemento\n"); 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() { _agenda *auxiliar; /* lo usamos para recorrer la lista */ int i; i=0; auxiliar = primero; printf("\nMostrando la lista completa:\n"); while (auxiliar!=NULL) { printf( "Nombre: %s, Teléfono: %s\n", auxiliar->nombre,auxiliar->telefono); auxiliar = auxiliar->siguiente; i++; } if (i==0) printf( "\nLa lista está vacía!!\n" ); }
Buscar este blog
16 de enero de 2010
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario