27/11/09 20:15
matteog
#include "stdafx.h" # include <iostream> # include <cstdlib> # include<string.h> #include <stdio.h> # define max 50 using namespace std; struct lista { char info[max]; char cognome[max]; char classe[max]; char nascita[max]; int matricola; lista * next; }; typedef lista * p; int i=0; int vet[1]; int menu(); void cancella(p, char[max],int i,int m); void stampa(p); p crea(int n); p inserisci(p,p); void cerca(p); void cercacognome(p); void cercanascita(p); void cercaclasse(p); void cercamatricola(p); int main() { int scelta; char x[max]; p temp=NULL,l=NULL,f; int m=0; int n=0; do { scelta=menu(); switch(scelta) { case 1: n++; temp=crea(n); l=inserisci(l,temp); f=l; break; case 2: cout<<"la lista e' \n"; stampa(l); cout<<"\n"; break; case 3:cout<<"inserisci il nome da cancellare\n"; cin>>x; l=f; cancella(l,x,i,m); break; case 4: cerca(l); break; case 5: cercacognome(l); break; case 6: cercaclasse(l); break; case 7: cercanascita(l); break; case 8: cercamatricola(l); break; } } while(scelta!=9); system("pause"); } void cancella(p l,char x[],int i,int m) { system("cls"); p temp=l; if(l!=NULL) { while(strcmp(l->info,x)!=0) { temp=l; l=l->next; } temp->next=l->next; delete l; } else { cout<<"errore"<<endl; } }
come posso evitare in fase di cancellazione che la lista venga persa nel caso in cui venga eliminato la testa della lista?
aaa