Ciao a tutti,
allora volevo chiedervi aiuto per quel che riguarda l'implementazione delle liste collegate(ho fatto delle ricerche ma tutte presentano delle varianti, quindi mi atterrò a quanto scritto sul libro di testo).
La definizione della struttura (che sarà il nodo) è la seguente:
typedef int T;
typedef struct nodo *puntNodo;
struct nodo {
T elem;
puntNodo next;
};
la funzione per costruire la lista non mi è molto chiara :
puntNodo createList()
{
puntNodo p=new nodo;
p=0;
return p;
}
mi spiego: puntNodo p=new nodo; restituisce a p l'indirizzo della struttura allocata dinamicamente.
l'istruzione successiva assegna il valore 0 al puntatore p , facendo perdere l'indirizzo della struttura. Non dovrebbe essere p->next=NULL?
Volendo poi inserire in testa un elemento x(push) che prevede la creazione di un nuovo nodo p la funzione è la seguente
void push(puntNodo& lista, T x)
{
puntNodo p=new nodo;
p->elem=x;
p->next=lista;
lista=p;
}
Non riesco a capire le ultime due istruzioni perché non mi è chiaro il parametro formale lista passato alla funzione a cosa faccia riferimento.
grazie anticipatamente.