En C, une liste chaînée vous permet de créer une liste sans en décider à l'avance combien de temps il pourrait être , et sans perdre de mémoire par des éléments allocation vous n'avez pas encore . L'inconvénient est que vous avez à faire tout le travail d'organisation et de gestion de la liste en mémoire. Instructions 
 Créer la structure de données 
 1 
 Choisissez un nom, puis utiliser typedef à définir. Chaque liste chaînée aura besoin d'une structure , même si elle ne dispose que d' une seule variable : 
 typedef struct product_data PRODUCT_DATA ; Page 2  définir la structure . Le dernier élément doit être un pointeur vers le type que vous venez de définir , et nommé "next" : 
 struct {int product_data product_code ; int product_size ; PRODUCT_DATA * suivant ;} ; 
 3  Allouer deux pointeurs vers cette structure de données , l'initialisation à NULL, comme la liste «tête» et «queue» : 
 PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL; 
 Ajouter à la liste < br > Hôtels 4  Affecter une variable temporaire qui est un pointeur vers la structure de données : 
 PRODUCT_DATA * newproduct ; 
 5  utilisation malloc () pour créer un nouvel élément , toujours vérifier en cas d'erreur : 
 if (( newproduct = malloc ( sizeof ( PRODUCT_DATA ))) == NULL ) { abort () ; } 
 6  Remplir les champs du nouvel élément . Définissez son champ "Suivant" pour NULL : 
 newproduct -> product_code = Code alternatif ; newproduct -> product_size = NewSize ; newproduct - > suivant = NULL; 
 7  Définissez la variable de la tête . Si la variable de tête est NULL, c'est le premier élément ajouté à la liste, définissez la variable pour pointer vers elle la tête : 
 si products_head = newproduct ; 
 8  Préparez-vous à une autre ( products_head !) variable. Dans d'autres cas , la queue variable pointe vers le dernier élément de la liste , de sorte mis sa prochaine valeur pour pointer vers le nouvel élément: 
 autre products_tail - > suivant = newproduct ; 
 9  Mise à jour de la queue pointer vers le nouveau dernier élément , dans les deux cas : 
 products_tail = newproduct ; 
 accéder à la liste 
 10  Créer une autre variable temporaire pointant vers la structure de données : 
 * PRODUCT_DATA produit ; 
 11  définir la variable temporaire à la variable de la tête : 
 produit = products_head ; 
 12  boucle à travers les éléments , vérifier chacun , puis en définissant la variable temporaire à l' prochaine pointeur de traverser à la suivante : alors que 
 ( produit ) { if (! produit -> product_code = 15) { produit = produit - > suivant ;}} 
 13  Vérifier si la variable est NULL . Si c'est le cas , vous n'avez jamais trouvé l'article : 
 si return 0; ( produit ) . Sinon, il pointe l'élément que vous recherchez :  retour produit -> product_size ; 
 Nettoyez votre travail 
 14  DEALLOCATE la liste lorsque votre programme se termine , comme tous les systèmes d'exploitation ne se chargera automatiquement cette 
 15 
 boucle tant que la variable de la tête n'est pas NULL : . 
 while ( products_head ) { 
 16  magasin de sa prochaine pointeur dans la variable de queue temporaire : 
 products_tail = products_head - > suivant ; 
 17  DEALLOCATE l'élément : gratuit 
 ( products_head ) ; 
 18  Placez le pointeur de la tête du pointeur que vous avez enregistré à l'étape 4 : 
 products_head = products_tail ;}