A me cosi' funziona benissimo:
Questo pezzo:codice:struct lista{ int n; lista* pt; lista(int a, lista *b) { n=a; pt=b; } //Costruttori lista() {} }; void inserisci_in_lista(lista*&,int); void stampa(lista *); main() { lista* first=0; int x; char risposta; do{ cout<<"Inserisci un valore da inserire nella lista : "; cin>>x; inserisci_in_lista(first,x); cout<<"\nVuoi continuare l'inserimento di valori nella lista? (s/n) : "; cin>>risposta; }while(risposta=='s'); stampa(first); } void inserisci_in_lista(lista*& lx, int val) { if(!lx) lx=new lista(val,0); else inserisci_in_lista(lx->pt,val); } void stampa(lista *lx) { if(lx) { cout<<lx->n<<' '; stampa(lx->pt); } }
Puoi pure scriverlo:codice:struct lista{ int n; lista* pt; lista(int a, lista *b) { n=a; pt=b; } lista() {} };
Ma allora devi modificare la funzione "inserisci_in_lista" e scriverla:codice:struct lista{ int n; lista* pt; };
Va bene?codice:void inserisci_in_lista(lista*& lx, int val) { if(!lx) { lx=new lista; lx->n=val; lx->pt=0; } else inserisci_in_lista(lx->pt,val); }
Dimmi di si ti prego..![]()

Rispondi quotando