Les listes chaînées 
1. Listes chaînées simples 
a. Principe 
Dans la vie quotidienne, une liste revêt plusieurs formes : une liste de courses, de tâches à effectuer, un index, un 
glossaire, une collection de dvds, de musiques, etc. Ces listes sont composées d’éléments individuels, liés les uns aux 
autres par leur type ou l’ordre que vous voulez leur donner. Pour passer d’un élément à un autre, vous descendez 
dans la liste dans l’ordre que vous lui avez donné. 
Comment se représenter une liste, par définition linéaire, en programmation ? Vous connaissez au moins un moyen : 
les  tableaux.  Dans  un  tableau,  vous  pouvez  y  stocker  n  éléments,  et  l’ordre  peut  être  représenté  par  l’indice  du 
tableau. 
Connaissez­vous un autre moyen de stocker des éléments ? Les enregistrements de types structurés le permettent, 
et en plus vous pouvez y stocker bien plus de détails. Vous pouvez aussi créer des tableaux d’enregistrements, donc 
leur donner un certain ordre. 
L’utilisation des tableaux pose cependant parfois des problèmes un peu complexes. Vous l’avez déjà remarqué avec 
les méthodes de tris. 
q Comment insérer un nouvel enregistrement en début de tableau ? Il n’y a pas d’indices négatifs… 
q Comment  insérer  un  nouvel  enregistrement  en  fin  de  tableau  ?  Si  l’algorithmique  propose  un 
redimensionnement dynamique, les langages comme Java ne le permettent pas. 
q Comment insérer un élément au milieu du tableau ? Faut­il décaler tous les éléments pour placer le nouveau 
à l’endroit donné ? Si oui, le tableau risque de déborder. 
q Et si vous supprimez un enregistrement, allez­vous de nouveau décaler le tableau pour boucher le trou ? Ou 
trouver une parade pour passer par­dessus ? 
Vous pouvez vous arranger pour tout programmer afin de tout faire marcher avec les tableaux. C’est parfaitement 
possible.  Mais  est­ce  vraiment  raisonnable  ?  Est­ce  de  la  programmation  efficace  ?  Rappelez­vous  qu’au  chapitre 
Introduction à l’algorithmique vous avez appris qu’il faut être économe en ressources. Cette méthode est gourmande 
et compliquée. Il vous faut en trouver une autre plus simple et plus belle. 
En  fait,  encore  une  fois,  vous  connaissez  tous  les  principes  de  base  de  cette  nouvelle  méthode.  Voici  quelques 
éléments : 
q Un enregistrement peut contenir un autre enregistrement. 
q Cet autre enregistrement peut être du même type structuré. 
q L’enregistrement peut aussi contenir un pointeur vers un autre enregistrement du même type. 
q En notation Java, un enregistrement est un objet, et dans un objet, on peut référencer un autre objet du 
même type. 
q On  obtient,  du  coup,  une  cascade  d’enregistrements  qui  se  suivent  les  uns  les  autres.  Pour  accéder  au 
suivant, il suffit d’accéder à la référence de cet enregistrement dans l’enregistrement actuel. 
q Chaque enregistrement dispose d’un pointeur ou référence vers le suivant. 
q Les enregistrements sont donc chaînés les uns aux autres, c’est une liste chaînée d’enregistrements. 
Le  principe  peut  être  représenté  par  le  schéma  suivant.  Chaque  enregistrement  est  représenté  par  un  cadre  et 
contient une valeur et un pointeur appelé psuiv qui pointe sur l’enregistrement suivant de la liste. 
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
174
Précédent

- 174/220

Suivant