|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jan 2014
Messaggi: 4
|
Liste in C++.,
Salve. Io sto facendo le liste a scuola, solo che essendo stato assente qualche giorno per malattia, non sono riuscito a seguire. Volevo chiedere se qualcuno me le può spiegare bene? Leggendo qua e là qualche cosa ho compreso, però ho molti dubbi. Ad esempio non capisco una cosa di questo codice che serve per fare l'inserimento in coda:
void INSERFONDO(nodo* &L,<tipo> X) { nodo* p,*q; p=new nodo; p->INFO=X; P->NEXT=NULL; if(L==NULL) L=p; else {q=L; while(q->NEXT!=NULL) q=q->NEXT; q->NEXT=P; } } Cosa fa l'istruzione ingrandita? Inolte se io dichiaro una Struct, e poi dichiaro: nomestrcut* nome_variabie. E poi nel main faccio: nome_variabile=NULL, cosa fa il comando? Secondo me inizializza una lista, ovvero un contenitore che non contiene nulla, e non punta a nulla , giusto? Ringrazio, chi riesce a spiegarmi bene questo argomento nei minimi dettagli. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Guarda il nodo p appena creato: è una lista di 1 elemento (1 nodo), che contiene un valore ed un riferimento al prossimo nodo (null, quindi la lista si limita ad 1 nodo). Segue che la tua risposta alla tua seconda domanda è corretta. Certo è che per capire a fondo le liste devi capire bene come funzionano i puntatori. Inoltre, sapresti dirmi cosa succederebbe se la tua funzione prendesse come primo parametro nodo* L anzichè nodo*& L ? |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jan 2014
Messaggi: 4
|
Se passo il parametro nodo* &L posso modificare la lista, mentre se passo solo nodo* L non posso modificarla. Credo che sia questa la risposta alla tua domanda, se l'ho capita bene.
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:37.