Originariamente inviato da Laikius91
In C, il tipo "lista" non esiste di per sè... occorre definirlo come ADT (abstract data type).
Senza entrare troppo nel dettaglio, ogni ADT è definito in base a:
1) Dominio dei valori che può assumere;
2) Funzioni
primitive, come, nel caso delle liste, creare una nuova lista, aggiungere alla lista un nuovo elemento, ottenere il primo elemento della lista, ottenere la lista privata del primo elemento... da queste primitive si possono ottenere altre funzioni assai utili per l'ADT;
3) Predicati che ritornano valori di tipo booleano rispondendo a determinati "quesiti", quale, nel caso delle liste, se la lista sia vuota.
L'implementazione non è immediata e non può essere tutta esplicitata qui, ma spero comunque di essere stato chiaro!