Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Types
Liste = ^Cellule
Cellule = Struct
Elem : entier
Suiv : Liste
FinStruct
Variables
L : Liste
1
Chapitre 4: Les listes chaînées
Tête^.Suiv ← Nil
L ← Tête
Pour i de 2 à n Faire
Allouer(P)
Ecrire(”Entrer un entier : ”) Lire(P^.Elem)
P^.Suiv ← Nil
L^.Suiv ← P
L←P
FinPour
L ← Tête
Fin
Tête
e1 e2 e3 Nil
2
Chapitre 4: Les listes chaînées
a- état initial
Tête
e1 e2 e3 Nil
e0
b- état final
3
Chapitre 4: Les listes chaînées
P ← P^.Suiv
FinTQ
recherche ← trouve
Fin
b- version récursive
4
Chapitre 4: Les listes chaînées
Tête
e1 e2 e3 Nil
a- état initial
×
Tête
e1 e2 e3 Nil
b- état final
Figure 18. Principe de suppression d’un élément de la liste
a- version itérative
Procédure supprimer(x : Entier ; Var L : Liste)
Variables
P, Q : Liste
Début
Si (L # Nil) Alors
P←L
Si (L^.Elem = x) Alors
L ← L^.Suiv
Libérer(P)
Sinon
Q ← L^.Suiv
TantQue (Q # Nil) ET (Q^.Elem # x) Faire
P←Q
Q ← Q^.Suiv
FinTQ
Si (Q # Nil) Alors
P^.suiv ← Q^.Suiv
Libérer(Q)
FinSi
FinSi
FinSi
Fin
L’instruction Libérer(P) permet de rendre disponible l’espace occupé par
P.
b- version récursive
5
Chapitre 4: Les listes chaînées
Solution
Fonction Longueur(L : Liste) : Entier
Début
Si (L = Nil) Alors
Longueur ← 0
Sinon
Longueur ← 1 + Longueur(L^.Suiv)
FinSi
Fin
Remarque
Une liste chaînée circulaire est une liste particulière dans laquelle le
dernier élément pointe sur la tête de la liste (figure 19).
6
Chapitre 4: Les listes chaînées
Tête
e1 e2 e3
Tête
Nil e1 e2 e3 Nil
Queue
Figure 20. Structure d’une liste à chaînage double
Types
Liste = ^Cellule
Cellule = Struct
Pred : Liste
Elem : Entier
Suiv : Liste
FinStruct
Variables
L : Liste
7
Chapitre 4: Les listes chaînées