matteo11102009
12-01-2014, 14:20
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:
#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;
}
}
Grazie mille in anticipo
Ecco il codice:
#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;
}
}
Grazie mille in anticipo