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 :
codice:
   struct s_nodo
	{
		int eta;
		struct s_nodo* next;
	};
.. che io voglia creare una lista di N nodi con delle "eta" lette da tastiera.
Definisco il tipo "t_nodo"
codice:
typedef struct s_nodo t_nodo;
e quindi definisico il tipo "t_lista" della lista, ricordando che una lista è identificata dal puntatore al suo primo nodo:
codice:
typedef t_nodo* t_lista;
...e la dichiaro:
codice:
t_lista lista;
A questo punto, per creare la lista VUOTA inizializzo a NULL il puntatore:
codice:
lista=NULL;
Ora come devo fare a creare gli N nodi? Il prototipo della funzione è :
codice:
t_nodo*node_create(t_info);
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 lista ). Successivamente devo far puntare "lista" al primo elemento del vettore di nodi o al vettore di nodi intero??
Qualcuno potrebbe chiarirmi le idee?