Una lista è una sequenza ordinata di elementi dello stesso tipo. Per esempio, (1 23 -1 2 -1) è una sequenza di numeri interi, mentre ('a' 'r' '1' 'P') è una sequenza di caratteri. La notazione che usiamo per rappresentare le sequenze è quella di mettere gli elementi fra parentesi tonde, separati da spazi.
Il modo più semplice di rappresentare delle liste in C è quello di usare gli array. In queste pagine vediamo una rappresentazione alternativa, che fa uso delle cosidette strutture collegate, in cui i vari elementi che compongono un insieme composto di dati sono rappresentati in zone di memoria che possono anche essere distanti fra loro (al contrario degli array, in cui gli elementi sono consecutivi), e sono legati fra di loro mediante puntatori.
Il resto del programma, per quello che riguarda le lista, è coperto dal libro di esercizi. La definizione di lista data nel libro è la seguente:
struct NodoLista { int val; struct NodoLista *next; }; typedef struct NodoLista TipoNodoLista; typedef TipoNodoLista *TipoLista;
Questa definizione differisce da quella usata sopra solo per il fatto che si dà un nome di tipo alla struttura NodoLista, ma per il resto è assolutamente identica.