Salve a tutti, vorrei porvi alcune domande riguardo la gestione delle liste. In particolare:
- una lista è un vettore di nodi
-ogni nodo è un tipo strutturato "t_node" che contiene un'informazione utile "info" di tipo" t_info" e un riferimento per spostarsi al prossimo nodo "link" di tipo "t_node*".
Supponiamo che la info di ogni nodo sia strutturata come :
.. che io voglia creare una lista di N nodi con delle "eta" lette da tastiera.codice:struct s_nodo { int eta; struct s_nodo* next; };
Definisco il tipo "t_nodo"
e quindi definisico il tipo "t_lista" della lista, ricordando che una lista è identificata dal puntatore al suo primo nodo:codice:typedef struct s_nodo t_nodo;
...e la dichiaro:codice:typedef t_nodo* t_lista;
A questo punto, per creare la lista VUOTA inizializzo a NULL il puntatore:codice:t_lista lista;
Ora come devo fare a creare gli N nodi? Il prototipo della funzione è :codice:lista=NULL;
che restituisce un puntatore al tipo t_nodo, quindi in pratica, nel creare più nodi, non faccio altro che creare un vettore di nodi ( che è una listacodice:t_nodo*node_create(t_info);). Successivamente devo far puntare "lista" al primo elemento del vettore di nodi o al vettore di nodi intero??
Qualcuno potrebbe chiarirmi le idee?![]()