In C , una lista concatenata permette di creare una lista senza decidere in anticipo quanto tempo potrebbe essere, e senza sprecare memoria da elementi di ripartizione non avete ancora . Il rovescio della medaglia è che si deve fare tutto il lavoro di organizzare e gestire l'elenco in memoria . 
 Istruzioni Creare i dati Struttura 
 1 
 Scegliere un nome , quindi utilizzare typedef per definirlo. Ogni lista collegata avrà bisogno di una struttura , anche se ha una sola variabile: 
 typedef struct product_data PRODUCT_DATA ; 
 2  definire la struttura . L' ultimo elemento deve essere un puntatore al tipo appena definito , e denominato " next " : 
 product_data struct { int codice_prodotto ; int product_size ; PRODUCT_DATA * next ; }; 
 3  Allocare due puntatori a questa struttura dati , l'inizializzazione a null, per essere la lista " testa" e "coda" : 
 PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL; 
 Aggiungi a elenco < br > 
 4  allocare una variabile temporanea che è un puntatore alla struttura dati : 
 PRODUCT_DATA * newproduct ; 
 5  Usa malloc ( ) per creare un nuovo elemento , il controllo sempre per un errore : 
 if ( ( newproduct = malloc ( sizeof ( PRODUCT_DATA ) ) ) == NULL) { abort (); } Pagina 6  popolare i campi del nuovo elemento . Impostare il campo " accanto " a NULL : 
 newproduct - > codice_prodotto = Nuovo codice ; newproduct - > product_size = newsize ; newproduct - > next = NULL ; 
 7  Impostare la variabile di testa . Se la variabile di testa è NULL , questo è il primo elemento aggiunto alla lista , in modo da impostare la variabile per puntare ad essa testa : 
 se products_head = newproduct ; Pagina 8  Preparati per un diverso ( products_head ! ) variabile . In altri casi , la coda variabile punta al l'ultimo elemento della lista , in modo da impostare il successivo valore per puntare al nuovo elemento: 
 altro products_tail - > next = newproduct ; Pagina 9  Aggiornare la coda di punto per il nuovo ultimo elemento , in entrambi i casi : 
 products_tail = newproduct ; 
 accedere all'elenco 
 10  Creare un'altra variabile temporanea che punta alla struttura dati : 
 PRODUCT_DATA * prodotto ; 
 11  la variabile temporanea per la variabile di testa : 
 prodotto = products_head ; Pagina 12  loop attraverso gli elementi , controllandoli uno per uno e impostando la variabile temporanea per la accanto puntatore per attraversare la prossima: 
 mentre (prodotto) {if ( ! prodotto - > codice_prodotto = 15) { prodotto = product- > next ; } } Pagina 13  Verifica se la variabile è NULL . Se è così , non hai mai trovato l' articolo: 
 se return 0; ( prodotto! ) . In caso contrario, indica l'oggetto che stavate cercando :  restituzione del prodotto - > product_size ; 
 ripulire il lavoro 
 14  deallocare la lista quando il programma termina , come non tutti i sistemi operativi sono in grado di gestire questo automaticamente 
 15 
 loop fino a quando la variabile di testa non è NULL : . 
 mentre ( products_head ) { 
 16  Conservare il prossimo puntatore la variabile coda temporaneamente : 
 products_tail = products_head - > next ; 
 17  deallocare l'elemento : 
 libero ( products_head ) ; 
 18  il puntatore di testa al puntatore è stato salvato al punto 4 : 
 products_head = products_tail ; }