What is a Doubly Linked List?
Leçon 2 sur 14 du cours Liste doublement chaînée - Série Structures de données n°6 de Coddy.
Une liste doublement chaînée est une séquence de nœuds où chaque nœud contient une valeur et deux pointeurs : prev vers le nœud précédent, et next vers le nœud suivant. La liste elle-même garde la trace des deux extrémités, la tête (premier nœud) et la queue (dernier nœud).
Les deux pointeurs par nœud et la référence supplémentaire tail nous apportent beaucoup. L'ajout à la fin est désormais en O(1) (on saute directement à tail au lieu de parcourir la chaîne), et la suppression du dernier nœud est également en O(1) (car nous pouvons atteindre l'avant-dernier nœud à partir de tail.prev). Le compromis est une consommation de mémoire plus importante par nœud, ainsi que plus de pointeurs à synchroniser lors de chaque insertion et suppression.
Les cinq opérations principales sur une liste doublement chaînée sont :
- AddFirst : Ajouter une valeur au début de la liste.
- AddLast : Ajouter une valeur à la fin de la liste (O(1) !).
- Get : Retourner la valeur à un index donné.
- RemoveLast : Supprimer le dernier nœud (O(1) !).
- Size : Retourner le nombre de nœuds actuellement stockés.
Créons d'abord une classe Node, puis construisons la DoublyLinkedList par-dessus !
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Toutes les leçons de Liste doublement chaînée - Série Structures de données n°6
Entraînez-vous par vous-même : Compilateur C en ligne