Listes chaînées : fiche de révision de Terminale NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
Une liste chaînée est une suite de cellules ; chaque cellule contient une donnée et un pointeur vers une autre cellule.2
Dans une liste simplement chaînée, on avance vers le successeur uniquement ; dans une liste doublement chaînée, on peut aussi aller vers le prédécesseur.3
Avantage : agrandir la liste revient à créer une cellule et à rediriger des pointeurs, sans limite autre que la mémoire disponible.3
Méthode d'insertion : d'abord relier la nouvelle cellule à la suite, ensuite rediriger la cellule précédente.
Piège classique : accéder au n-ième élément oblige à parcourir la chaîne depuis le début.
Ce qu'est une liste chaînée
Chaque élément garde, en plus de sa donnée, une référence vers un élément voisin dans la liste.2 C'est cette référence qui permet de passer d'une cellule à la suivante. Tu n'as donc pas besoin que les éléments soient rangés les uns à côté des autres en mémoire.
Les variantes à connaître
Liste chaînée ou tableau ?
Dans un tableau, les données sont contiguës en mémoire, ce qui impose une taille fixe.3 Certains langages proposent des tableaux à taille dynamique, comme les listes de Python : ils restent contigus en mémoire et sont recopiés dans un bloc plus grand quand la place manque.
La taille d'une liste chaînée n'est limitée que par la mémoire disponible.3 Pour l'agrandir, il suffit de créer une nouvelle cellule et de faire pointer vers elle une cellule déjà présente.3
Tableau et liste chaînée
Critère
Tableau
Liste chaînée
Rangement en mémoire
cellules contiguës
cellules reliées par pointeurs
Taille
fixe
limitée par la mémoire
Insertions et suppressions fréquentes
moins adapté
adaptée
Tableau et liste chaînée · Comparaison des deux structures.
Programmer une liste chaînée en Python
CréerCrée la nouvelle cellule nv avec sa valeur.
Relier à la suitenv.suivante prend la valeur de c.suivante.
Redirigerc.suivante pointe désormais vers nv.
Insérer une cellule dans une liste simplement chaînée · Ordre des opérations lors d'une insertion.
Pièges fréquents
Questions flash
4 questions · correction immédiate · ton score reste sur ton appareil.
Une cellule porte un contenu et un pointeur vers une autre cellule ; dans le cas simplement chaîné, c'est le successeur.23 Deux pointeurs, c'est la liste doublement chaînée, ce qui est l'erreur tentante ici.
Chaque élément pointe vers son successeur et vers son prédécesseur, donc le parcours est possible dans les deux sens.3 Dans une liste simplement chaînée, on ne va que vers l'avant.
Il faut d'abord relier nv à la suite de c. Si tu écris c.suivante = nv en premier, la référence vers l'ancienne suite est écrasée et la fin de la liste est perdue.
L'usage d'une liste est préconisé quand l'ordre compte et que les insertions et suppressions sont plus fréquentes que les accès.2 Lire le rang 500 oblige au contraire à suivre environ 500 pointeurs depuis la tête.
Les questions qu'on se pose
Pourquoi utiliser une liste chaînée si un tableau existe déjà ?
Un tableau a des données contiguës en mémoire et une taille fixe.3 Une liste chaînée grandit en ajoutant des cellules, sans autre limite que la mémoire disponible.3 Elle est surtout adaptée quand on insère ou supprime souvent des éléments.2
Comment m'entraîner pour l'épreuve du bac ?
On te demande en général de lire ou d'écrire un parcours, une insertion ou une suppression, et de justifier le choix d'une structure. Entraîne-toi à dessiner les pointeurs avant d'écrire le code, puis à vérifier le cas de la liste vide.
Quelle différence entre liste simplement et doublement chaînée ?
La première n'a qu'un pointeur vers le successeur et se parcourt dans un seul sens ; la seconde ajoute un pointeur vers le prédécesseur et se parcourt dans les deux sens.3 En contrepartie, elle consomme plus de mémoire et ses mises à jour demandent plus de copies de pointeurs.2