Credo che ci sia un problema con il collegamento che collega al primo.
Vi posto il mio codice:
Vi posto l'output:codice:#include <iostream> using namespace std; struct nodo{ int key; nodo* next;}; typedef nodo* pnodo; pnodo cons(int x, pnodo testa); //per creare un elemento void stampa(pnodo testa); //stampa la lista pnodo leggi(); // legge da tastiera bool cambia(nodo *n1, nodo*n2); pnodo cons(int x, pnodo testa){ pnodo nuovo=new nodo; nuovo->key=x; nuovo->next=testa; return nuovo; } void stampa(pnodo testa){ pnodo p; for(p=testa;p!=0;p=p->next) cout << p->key << " "; } pnodo leggi(){ int x; pnodo testa,ultimo; int n,i; cout << "Inserire il numero di elementi: "; cin >> n; if(n==0) return 0; for(i=0;i<n;i++){ cout << "Inserire il "<< i+1 <<" elemento: "; cin >> x; if(i==0){ testa=cons(x,0); ultimo=testa; }else{ pnodo nuovo=cons(x,0); ultimo->next=nuovo; ultimo=nuovo; } } return testa; } bool cambia(nodo *n1, nodo*n2) { if ( n1 && n2 ) { nodo * t = n1->next; n1->next = n2->next; n2->next = t; return true; } else return false; } int main(){ pnodo a=leggi(); cambia(a,a->next); stampa(a); return 0; }
Non capisco perchè!codice:Inserire il numero di elementi: 4 Inserire il 1 elemento: 2 Inserire il 2 elemento: 3 Inserire il 3 elemento: 4 Inserire il 4 elemento: 5 2 4 5

Rispondi quotando