Allora sto studiando le liste e vorrei capire una cosa se faccio una cosa del genere:
typedef int E; // Def. del tipo di el. della lista
struct Record; // Predichiarazione
typedef Record* L; // Def. del tipo puntatore a Record
struct Record { // Tipo record costituito da
E elem; // campo informazione
L punt; // campo puntatore al prossimo nodo della lista
};
e poi
.....
....
....
int main() {
int scelta, esci=0;
E e;
L l; //definisce variabile di tipo lista
...
...
e scrivo una funzione del tipo:
void push(L& l,const E e) {
L q=new Record; //alloca spazio
q->elem=e; //vi pone e
q->punt=l; //lega al resto della lista
l=q; //lo mette in testa alla lista
}
In questo caso l'istruzione l=q significa come scritto nel commento "lo mette in testa alla lista", ma io non ho capito una cosa:
"Questo vale perchè l da solo in questo caso è il puntatore al primo elemento della lista?"
In parole molto povere:
Se definisco una lista l, e poi scrivo q=l;
significa che metto in q l'indirizzo del primo elemento della mia lista??
GRazie mille!!!