Está en la página 1de 2

#include <stdio.

h>

struct _agenda {
char nombre[20];
char telefono[12];
struct _agenda *siguiente;
};

struct _agenda *primero, *ultimo;

void mostrar_menu() {
printf("\n\nMen:\n=====\n\n");
printf("1.- Aadir elementos\n");
printf("2.- Borrar elementos\n");
printf("3.- Mostrar lista\n");
printf("4.- Salir\n\n");
printf("Escoge una opcin: ");fflush(stdout);
}

/* Con esta funcin aadimos un elemento al final de la lista */
void anadir_elemento() {
struct _agenda *nuevo;

/* reservamos memoria para el nuevo elemento */
nuevo = (struct _agenda *) malloc (sizeof(struct _agenda));
if (nuevo==NULL) printf( "No hay memoria disponible!\n");

printf("\nNuevo elemento:\n");
printf("Nombre: "); fflush(stdout);
gets(nuevo->nombre);
printf("Telfono: "); fflush(stdout);
gets(nuevo->telefono);

/* el campo siguiente va a ser NULL por ser el ltimo elemento
de la lista */
nuevo->siguiente = NULL;

/* ahora metemos el nuevo elemento en la lista. lo situamos
al final de la lista */
/* comprobamos si la lista est vaca. si primero==NULL es que no
hay ningn elemento en la lista. tambin 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() {
struct _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, Telefono: %s\n",
auxiliar->nombre,auxiliar->telefono);
auxiliar = auxiliar->siguiente;
i++;
}
if (i==0) printf( "\nLa lista est vaca!!\n" );
}

int main() {
char opcion;

primero = (struct _agenda *) NULL;
ultimo = (struct _agenda *) NULL;
do {
mostrar_menu();
opcion = getch();
switch ( opcion ) {
case '1': anadir_elemento();
break;
case '2': printf("No disponible todava!\n");
break;
case '3': mostrar_lista(primero);
break;
case '4': exit( 1 );
default: printf( "Opcin no vlida\n" );
break;
}
} while (opcion!='4');
}
__________________________________________________________________

También podría gustarte