diff --git a/slides/cours_11.md b/slides/cours_11.md index 22fae35d0e070977a22be5645568b9b2e43ddcde..57c2f7fb270f44bf759f3973eaa34a31ef250db1 100644 --- a/slides/cours_11.md +++ b/slides/cours_11.md @@ -703,6 +703,44 @@ $$ # Liste doublement chaînée -* La liste simplement chaînée permet un seul sens de parcours d'éléments. -* +## Application navigateur ou éditeur de texte + +* Avec une liste chaînée: + * Comment implémenter les fonctions `back` et `forward` d'un navigateur?? + * Comment implémenter les fonctions `undo` et `redo` d'un éditeur de text? + +. . . + +Pas possible. + +## Solution? + +. . . + +* Garder un pointeur supplémentaire sur l'élément précédent et pas seulement le + suivant. + +. . . + +* Cette structure de donnée est la **liste doublement chaînée** ou **doubly + linked list**. + +# Liste doublement chaînée + +## Exercice + +* Partir du dessin suivant et par **groupe de 5** + + + +. . . + +1. Écrire les structures de données pour représenter la liste double chaînée. +2. Écrire les fonctionnalités suivantes + +```C + +``` + +