// 2piza43.c #include<stdio.h> #include<conio.h> struct lista * inicializa(struct lista *cabeza); struct lista * mete(struct lista *cabeza, struct cliente cliente); void amosa (struct lista *cabeza); struct cliente { int codigo; char nome[40]; char cidade[20]; }; struct lista { struct cliente datos; struct lista *seguinte; }; ///////////////////////////////////////////////////////////////////// void main(void) { struct lista *cabeza; struct cliente cliente; int numero; char dato[10]; clrscr(); cabeza=NULL; do { printf ("\n M E N U"); printf ("\n ======="); printf ("\n 1.- INICIALIZA Lista de clientes"); printf ("\n 2.- AMOSA Lista de clientes"); printf ("\n 3.- METE cliente en Lista"); printf ("\n 4.- FINAL\n "); gets(dato); numero=atoi(dato); switch(numero) { case 1: cabeza=inicializa(cabeza); printf ("\n Lista INICIALIZADA\n"); break; case 2: amosa(cabeza); break; case 3: printf ("\nDame cliente (para METER): "); printf ("\n Codigo: "); gets(dato); cliente.codigo=atoi(dato); printf ("\n Nome: "); gets(cliente.nome); printf ("\n Cidade: "); gets(cliente.cidade); cabeza=mete(cabeza,cliente); break; case 4: printf ("\nFINAL"); break; default: printf ("\n OPCION Erronea\n"); break; } } while (numero!=4); getchar(); } ///////////////////////////////////////////////////////////////////// struct lista * inicializa(struct lista *cab) { cab=NULL; return (cab); } ///////////////////////////////////////////////////////////////////// struct lista * mete(struct lista *cab, struct cliente cliente) { struct lista *p; p=(struct lista *)malloc (sizeof (struct lista)); p->datos=cliente; p->seguinte=cab; return (p); } ///////////////////////////////////////////////////////////////////// void amosa(struct lista *cab) { printf ("\n Lista de clientes\n"); printf ("\n =================\n"); printf ("\n CODIGO NOME while (cab!=NULL) { printf ("\n%10d",cab->datos.codigo); printf ("%15s",cab->datos.nome); printf ("%15s",cab->datos.cidade); cab=cab->seguinte; } printf("\n"); } CIDADE");