Liste chainériri
Nœud { Objet (qui peut être une référence) Référence vers un Nœud (Suivant) } Nouvelle Liste (Nœud, Liste) { Si Liste = NULL Faire Liste := Nœud; Retourner Liste Sinon Liste = Liste. Suivant Fin Si Nouvelle Liste (Nœud, Liste) }
2. Voici une méthode pour insérer un élément au début d’une liste simplement chaînée. On garde le pointeur de la Tête dans un pointeur temporaire. On fait ensuite pointer le début de la liste au nouveau nœud à insérer. Puis on met le suivant de cet objet au pointeur temporaire gardé. Temporaire := Tête Tête := Nouveau Tête. Suivant := Temporaire 3. Programme récursif qui supprime le dernier élément d’une liste simplement chaînée. SupprimerDernier (Courant, soit un pointeur sur un nœud de la liste) { Si Courant. Suivant n’est pas vide faire Courant := Courant. Suivant SupprimerDernier (Courant) Sinon Effacer le contenu de Courant Mettre Courant à NULL Fin si }
On pourrait remplacer les lignes « Effacer le contenu de Courant » et « Mettre Courant à NULL » par « Dépiler (Courant) ».
4. Voici un algorithme récursif pour concaténer deux listes doublement chaînées L et M en une seule liste L’ contenant tous les nœuds de L puis tous les nœuds de M. Concaténer (Courant = Début de L, Début de M) { Si Courant = Fin de L Faire Courant. Suivant := Début de M Début de M. Précédent := Courant Retourner L (qui contiendra les deux listes concaténées) Fin si Concaténer (Courant, Début de M) } 5. Voici la sortie de la série d’opérations : Ajouter (5) 5 Ajouter (3) Enlever () Ajouter (2) Ajouter (8) Enlever () Enlever () Ajouter (9) Ajouter (1) Enlever () Ajouter (7) Ajouter