Beruflich Dokumente
Kultur Dokumente
Chapitre 4
Structures squentielles
1- les listes
Introduction
Une liste est un ensemble ordonn et extensible dlments de mme type auxquels on
accde squentiellement et o lon peut ajouter ou retrancher un lment en nimporte
quelle position.
Cest donc une suite sur laquelle on peut effectuer une gamme trs large doprations
Une liste peut tre dcompose en deux parties : le dbut de la liste et la suite de la
liste.
On utilisera la structure enregistrement pour dfinir un type liste dlments de
type T de la faon suivante :
http://berrehouma.olympe-network.com
1
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Formellement L =< e0 , e1 ,.., en > o n est le nombre des lments dans la liste un
instant donn.
Soit E lensemble des lments, lensemble des listes donc = + E
Remarques
1- Lordre des lments dans une liste est fondamental.
2- Lordre est sur les places des lments, et pas sur les lments eux mmes
3- Les places sont totalement ordonnes cest dire quil existe une fonction de
succession succ telle que toute place est accessible en appliquant succ de
manire rpt partir de la premire place de la liste.
Donc pour toute place P dune liste non vide k 0 tq P = succ k (tte( L)) o tte(L)
indique la premire place de L.
4- chaque place un contenu qui est un lment.
5- Le nombre n dlment (des places) de L est appel la longueur de L ( si n=0,
elle ne contient aucun lment,, autrement dit , elle est vide)
6- Pour la nme place la fonction succ nest pas dfinie
7- Lalgorithme le plus utilis dans les liste est celui du parcours squentiel
dune liste
Cet algorithme parcoure dans lordre des places une liste non vide, pour appliquer le
mme traitement leurs contenus.
http://berrehouma.olympe-network.com
2
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
En plus de traitement squentiel des lments , les oprations de base que lon peut
effectuer sur les listes sont les suivantes :
http://berrehouma.olympe-network.com
3
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Exercice
Donner la signature de lopration concatner de deux listes ainsi que les axiomes.
Solution
a- concat : liste, liste liste
b-
longeur (concat ( L1 , L 2 ) = longueur (L1 ) + longueur ( L 2 )
me me
1 i longueur (L1 ) i (concat (L1 , L 2 ), i ) = i (L1 , i )
me me
longueur (L1 ) + 1 i longueur (L1 ) + longueur (L 2 ) i (concat ( L1 , L 2 ), i ) = i (L 2 , i longueur (L1 ))
concat (liste _ vide , L ) = L
concat (cons (e , L )), L ') = cns (e , concat (L , L '))
http://berrehouma.olympe-network.com
4
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
e1 e2 . en n
T longueur
Exercice
Ecrire lalgorithme supprimer qui supprime le kme lment de la liste L.
Solution
si k n alors
pour i = k n-1 faire
L.T[i]L.T[i+1]
Fin pour
L.longueur n-1
finsi
Fin
http://berrehouma.olympe-network.com
5
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Exercice
Ecrire lalgorithme inserer qui insre un lment x dans la kme place de la liste L
Solution
L.T[i+1]L.T[i]
Fin pour
L.T[k]x
L.longueur n+1
finsi
Fin
cellule
adresse de la cellule
information adresse
http://berrehouma.olympe-network.com
6
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
5.B.1 Pointeurs
une variable qui prend pour valeur une adresse est appele une variable de type
pointeur ou simplement pointeur.
p :pointeur
a
p :^T
Exemple
p1 :^entier ;
p2 :^entier
a,b :entier ;
nouveau(p1) ;
nouveau(p2) ;
p1 p2
p1 ^ a ;
p2 ^ b ;
p1 p2
a b
http://berrehouma.olympe-network.com
7
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
p1p2
p1 p2
a b
p1nil
p1 p2
a b
librer(p2) ;
p1 p2
a
Les pointeurs sont utiliss pour chaner entre eux les lments successifs dune liste
la liste est dtermine par ladresse de son premier lment
une liste est reprsente par
http://berrehouma.olympe-network.com
8
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Exemple
Soit L une liste chane contenant les quatre lments suivants : e1,e2,e3,e4
e1
e2
e3
e4
L
si L liste_vide alors L contient ladresse du 1er lment (1re cellule ), dans
lexemple prcdents L contient ladresse de e1.
L reprsente tte(L)
L^.lien reprsente fin(L)
si une place est reprsente par le pointeur P alors succ(P) est reprsente par
P^.lien
Exercice
soit la reprsentation de deux listes chanes comme suite :
0 6
1 B 4
Liste chane 2 0
1 3 D 9
4 A 3
5 B -1
7 6 8
7 2
Liste libre 8 11
9 A 5
10 -1
11 10
12
http://berrehouma.olympe-network.com
9