Ciao a tutti... a scuola mi è stato assegnato un esercizio sulle strutture dinamiche (liste e puntatori) che ho provato ad eseguire oggi. Il problema è che nel codice non ci sono errori sintattici ma semantici che non riesco ad individuare e che mi creano un loop durante l'esecuzione del programma. Sapreste dirmi dove si trova il problema e potreste aiutarmi a correggerlo?
Ecco il codice:
Grazie mille in anticipocodice:#include <iostream> using namespace std; struct nodo{ int info; nodo *next; }; nodo *h, *t, *n; void add_first(); void add_second(); void add_last(); void show(); int main(int argc, char** argv) { int scelta; do{ cout<<"1) Inserisci il primo nodo; "<<endl; cout<<"2) Inserisci il secondo nodo; "<<endl; cout<<"3) Inserisci un nodo in coda; "<<endl; cout<<"4) Visualizza la lista; "<<endl; cout<<"0) ESCI. "<<endl; cin>>scelta; switch(scelta){ case(1):{ add_first(); break; } case(2):{ add_second(); break; } case(3):{ add_last(); break; } case(4):{ show(); break; } } }while(scelta!=0); return 0; } void add_first(){ n=new(nodo); cout<<"Inserisci un elemento al campo info: "; cin>>n->info; cout<<endl; n->next=NULL; t=n; h=n; } void add_second(){ n=new(nodo); cout<<"Inserisci un elemento al campo info: "; cin>>n->info; cout<<endl; n->next=NULL; t->next=n; t=t->next; } void add_last(){ n=new(nodo); cout<<"Inserisci un elemento al campo info: "; cin>>n->info; cout<<endl; t=h; while(t->next!=NULL) t=t->next; t->next=n; n=h; } void show(){ t=h; while(t->next!=NULL){ cout<<t->info<<endl; t=t->next; } }

Rispondi quotando