Anda di halaman 1dari 4

1 #include <stdio.

h>
2 #include <stdlib.h>
3
4 struct _agenda {
5
char nombre[20];
6
char telefono[12];
7
struct _agenda *siguiente;
8
};
9
10 struct _agenda *primero, *ultimo;
11
12 void mostrar_menu() {
13
printf("\n\nMen:\n=====\n\n");
14
printf("1.- Aadir elementos\n");
15
printf("2.- Borrar elementos\n");
16
printf("3.- Mostrar lista\n");
17
printf("4.- Salir\n\n");
18
printf("Escoge una opcin: ");fflush(stdout);
19 }
20
21 /* Con esta funcin aadimos un elemento al final de la
lista */
22 void anadir_elemento() {
23
struct _agenda *nuevo;
24
25
/* reservamos memoria para el nuevo elemento */
26
nuevo = (struct _agenda *) malloc (sizeof(struct
_agenda));
27
if (nuevo==NULL) printf( "No hay memoria
disponible!\n");
28
29
printf("\nNuevo elemento:\n");
30
printf("Nombre: "); fflush(stdout);
31
scanf("%s", &nuevo->nombre);
32
printf("Telfono: "); fflush(stdout);
33
scanf("%d", &nuevo->telefono);
34
35
/* el campo siguiente va a ser NULL por ser el ltimo
elemento
36
de la lista */
37
nuevo->siguiente = NULL;
38
39
/* ahora metemos el nuevo elemento en la lista. lo
situamos

40
al final de la lista */
41
/* comprobamos si la lista est vaca. si
primero==NULL es que no
42
hay ningn elemento en la lista. tambin vale
ultimo==NULL */
43
if (primero==NULL) {
44
printf( "Primer elemento\n");
45
primero = nuevo;
46
ultimo = nuevo;
47
}
48
else {
49
/* el que hasta ahora era el ltimo tiene que
apuntar al nuevo */
50
ultimo->siguiente = nuevo;
51
/* hacemos que el nuevo sea ahora el ltimo */
52
ultimo = nuevo;
53
}
54 }
55
56 void mostrar_lista() {
57
struct _agenda *auxiliar; /* lo usamos para recorrer la
lista */
58
int i;
59
60
i=0;
61
auxiliar = primero;
62
printf("\nMostrando la lista completa:\n");
63
while (auxiliar!=NULL) {
64
printf( "Nombre: %s, Telefono: %s\n",
65
auxiliar->nombre,auxiliar->telefono);
66
auxiliar = auxiliar->siguiente;
67
i++;
68
}
69
if (i==0) printf( "\nLa lista est vaca!!\n" );
70 }
71
72 int main() {
73
char opcion;
74
75
primero = (struct _agenda *) NULL;
76
ultimo = (struct _agenda *) NULL;
77
78
do{
79
mostrar_menu();

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

printf("\nIntroduzca el Numero de la Opcion:");


scanf("%s", &opcion);
switch ( opcion )
{
case '1': anadir_elemento();
break;
case '2': printf("No disponible todava!\n");
break;
case '3': mostrar_lista();
break;
case '4': exit( 1 );
default: printf( "Opcin no vlida\n" );
break;
}
}while (opcion != '4');
}

return 0;

Anda mungkin juga menyukai