Chapitre 1
LISTES LINÉAIRES
1.1.
Introduction
Nous présentons dans ce chapitre les listes linéaires chaînées. Une liste linéaire serait définie par une suite de cellules.
Une cellule est définie par deux champs : le premier champs indique le contenu de la cellule, et le deuxième champs est une
référence vers une autre cellule. Chaque cellule est associée à une adresse dans la mémoire.
Nous définissons un nouveau type qu’on appellera RefCellule qui signifie que la variable associée contiendra une adresse de
mémoire.
1.1.1.
Définition de la structure
type Cellule de T = structure
info : T
suivant : RefCellule de T
type Refcellule de T = ↑Cellule de T
1.1.2.
Gestion dynamique de la mémoire
Pour pouvoir manipuler les liste nous supposons qu’on dispose des procédures suivantes :
nouveau(L) cree une cellule et stocke une référence de type RefCellule de T dans L. Cette cellule va contenir un
élément de type T. T correspond au mot clé qui définit le type. Quand on crée une cellule, le champs suivant est
affecté à nil par default.
laisser(L) détruit une cellule dont la référence est donnée dans L.
Nous remarquons qu’il est suffisant d’avoir la référence de la première cellule de la liste pour pouvoir manipuler la liste
entière et ceci en accédant au champ suivant.
1.1.3.
Création d’une liste
Nous proposons un algorithme qui crée une liste chaînée de longueur donnée à partir des valeurs lues par l’utilisateur.
Nous présentons ensuite l’algorithme qui permet de construire une liste chaînée à partir d’un vecteur donné.
1.1.4.
Parcours d’une liste
Nous supposons que nous disposons d’une procedure traiter qui traite une cellule en connaissant sa référence. Nous
présentons deux versions pour le parcours d’une liste de gauche à droite.
1.2.
Quelques algorithmes sur les listes
1