/******************************************************************** * Nome programma: lista.c * * Autore: Buttolo Marco. * * Scopo: Mostra operazioni sulla lista. * * Data: 12/11/2003 * ********************************************************************/ #include //definizione struttura struct persona { char nome[50]; char cognome[50]; char indirizzo[50]; long telefono; struct persona *succ; }bpersona; //creo puntatore testa struct persona *testa; //creo puntatore corrente struct persona *corrente; void main(void) { char scelta; while (scelta != '0') { //visualizzazione menu printf("*************************************"); printf("\n 1. Inserimento elemento"); printf("\n 2. Visualizza lista"); printf("\n 3. elimina elemento di testa dalla lista"); printf("\n 0. Uscita"); printf("\n Scegli:"); scelta=getch(); switch(scelta) { case '1': { system("cls"); printf("\n Nome:"); scanf("%s", bpersona.nome); printf("\n Cognome:"); scanf("%s", bpersona.cognome); printf("\n Indirizzo:"); scanf("%s", bpersona.indirizzo); printf("\n Tel:"); scanf("%l", bpersona.telefono); //creo puntatore al nodo struct persona *p; testa = NULL; //inserimento primo elemento p=(struct persona *) malloc (sizeof(struct persona)); p->succ=testa; testa=p; break; } case '2': { struct persona *p; corrente=testa; //scansione lista while (corrente-> succ!=NULL) { system("cls"); printf("\n Nome: %s", bpersona.nome); printf("\n Cognome: %s", bpersona.cognome); printf("\n Indirizzo: %s", bpersona.indirizzo); printf("\n Tel:$l", bpersona.telefono); printf("\n Premi un tasto per proseguire..."); getch(); corrente=corrente->succ; } p=(struct persona *)malloc(sizeof(struct persona)); corrente->succ=p; p->succ=NULL; break; } case '3': { free(testa); //elimina elemento di testa da memoria break; } default: { printf("\n errore!!"); exit(0); } } } }