Qualkuno mi saprebbe dire la sintassi ke mi permette di conservare in una variabile il campo puntatore di un nodo???
Io provo a fare cosi, ma mi da errore:
x="nome_viariabile".next; // dove next è il campo puntatore.
Qualkuno mi saprebbe dire la sintassi ke mi permette di conservare in una variabile il campo puntatore di un nodo???
Io provo a fare cosi, ma mi da errore:
x="nome_viariabile".next; // dove next è il campo puntatore.
Non ho capito la domanda ...
P.S. Per favore, scrivi senza abbreviazioni da SMS ... l'italiano e' una bella lingua ... utilizziamola ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Allora. Praticamente vorrei memorizzare in una variabile il campo puntatore (quello che punta alla variabile successiva)
codice:#include <iostream> using namespace std; int *p,*q,*r; int *x; int main() { struct lista { string nome; string cognome; int eta; struct lista *punt; }; lista p; cout << "Inserisci il nome = "; cin >> p.nome; cout << "Inserisci il cognome = "; cin >> p.cognome; cout << "Inserisci l'eta = "; cin >> p.eta; lista q; p.punt =&q; cout << "Inserisci il nome = "; cin >> q.nome; cout << "Inserisci il cognome = "; cin >> q.cognome; cout << "Inserisci l'eta = "; cin >> q.eta; lista r; x=r.punt; //voglio conservare nella variabile "x" il campo puntatore di "r". qui mi da errore system("pause"); }
Non va bene la dichiarazione di r e x che hai scritto all'inizio ...
r deve essere un elemento di tipo lista e x deve essere un puntatore a lista
Studia bene il capitolo dei puntatori in un qualsiasi libro di C ...codice:lista r; struct lista *x; x=r.punt;
No MP tecnici (non rispondo nemmeno!), usa il forum.
sto cercando di fare un programma che mi fa caricare k nodi.
codice:#include <iostream> using namespace std; int *p,*q,*r; int x,i,k,y; int main() { i=0; y=2; struct lista { string nome; string cognome; int eta; struct lista *punt; }; cout << "Inserisci il numero di nodi da creare (min 3) = "; cin >>k; lista p; cout << "Inserisci il nome = "; cin >> p.nome; cout << "Inserisci il cognome = "; cin >> p.cognome; cout << "Inserisci l'eta = "; cin >> p.eta; lista q; p.punt =&q; cout << "Inserisci il nome = "; cin >> q.nome; cout << "Inserisci il cognome = "; cin >> q.cognome; cout << "Inserisci l'eta = "; cin >> q.eta; do { lista r; struct lista *x; if (i==0) { q.punt=&r; } else { x.punt=&r; //QUI MI DA ERRORE } x=r.punt; i=1; y++; cout << "Inserisci il nome = "; cin >> r.nome; cout << "Inserisci il cognome = "; cin >> r.cognome; cout << "Inserisci l'eta = "; cin >> r.eta; } while(y<k); system("pause"); }
Scusate ho risolto:
la sintassi corretta era:
x=&r;
:quote:
Cmq ho provato a far stampare i nodi collegati, e mi sono accorto che ce qualkosa che non va. Mi sapreste aiutare??
Ancora non ho capito nulla del tuo problema e di come lo hai risolto ...
In ogni caso, il problema della "stampa dei nodi" lo dovresti porre aprendo un nuovo thread, spiegandolo bene e mostrando il codice.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Questo è il programma scritto da me. Prima ho parlato delle stampa dei nodi, per controllare se ho collegato i nodi che creo. Tu sapresti dirmi se in questo modo ho collegato i nodi che creo?? Vorrei una conferma.
codice:#include <iostream> using namespace std; int *p,*q,*r; int x,i,k,y; int main() { i=0; y=1; struct lista { string nome; string cognome; int eta; struct lista *punt; }; cout << "Inserisci il numero di nodi da creare (min 3) = "; cin >>k; lista p; cout <<y<< ") Inserisci il nome = "; cin >> p.nome; cout <<y<< ") Inserisci il cognome = "; cin >> p.cognome; cout <<y<< ") Inserisci l'eta = "; cin >> p.eta; lista q; p.punt =&q; y++; cout <<y<< ") Inserisci il nome = "; cin >> q.nome; cout <<y<< ") Inserisci il cognome = "; cin >> q.cognome; cout <<y<< ") Inserisci l'eta = "; cin >> q.eta; do { lista r; struct lista *x; if (i==0) { q.punt=&r; } else { x=&r; } x=r.punt; i=1; y++; cout <<y<< ") Inserisci il nome = "; cin >> r.nome; cout <<y<< ") Inserisci il cognome = "; cin >> r.cognome; cout <<y<< ") Inserisci l'eta = "; cin >> r.eta; } while(y+1<k); system("pause"); }
No ... non lo fai ... quel codice ha molti "errori" logici che non vale la pena correggerlo ...
Per gestire correttamente le liste collegate, devi studiare la teoria, come ti avevo detto in questa discussione
http://forum.html.it/forum/showthrea...readid=1287815
a cui non hai risposto.
Se non affronti la parte teorica, non capirai mai come scrivere un codice corretto ...
Un punto fondamentale e' l' allocazione dinamica dei nodi, che manca nel tuo codice, ed e' necessaria per una corretta gestione di n-nodi collegati.
Se non hai ben chiaro anche l'utilizzo dei puntatori, ti consiglio di rivedere questi argomenti ...
Quindi ...
puntatori
allocazione dinamica della memoria
No MP tecnici (non rispondo nemmeno!), usa il forum.
ma i primi due nodi sono collegati?