Vous êtes sur la page 1sur 2

Les listes chaines

Description
Une liste chaine est un ensemble d'lments ordonns suivant un chainage : ABCD Ce chainage peut tre revu dynamiquement (ajout, dplacement d'lments, etc.) : - ajout : ABCDE - insertion : ABECD - etc.

rfrences ou par pointeurs (on utilisera les pointeurs) sont plus souples et permettent des mises jour trs rapides. Exemple : l'insertion d'un lment E entre B et C dans ABCDE

avec un tableau, il est ncessaire de dcaler par copie C, D et E, puis d'craser C la position 3 avec une liste chaine, il suffit de mettre jour le suivant de l'lment B et de configurer correctement le nouvel lment insr.

Exercices 1
Implmenter les fonctions et procdures des spcifications suivantes d'une liste chaine :

class ListeChainee<Telt> Pour faire voluer ces structures, on modifie dynamiquement les relations dbut spcification entre les lments de la structure en vitant de rgnrer l'ensemble. proc init()

Utilisation des pointeurs


On choisit d'utiliser les pointeurs pour manipuler ces structures (il aurait t aussi possible d'utiliser seulement des rfrences). Pour chaque lment, on dfinit la valeur associe au type de l'lment ainsi qu'un pointeur sur l'lment suivant : type struct Telt val Maillon<Telt> * suivant fin struct Maillon<Telt>

post-relation : Initialise vide la liste fonction logique estVide() post-relation : retourne vrai si la liste est vide proc ajoute(e) entre : Telt e post-relation ajoute e la fin de la liste proc insere(e,i) entre : Telt e, entier i post-relation : insre e la ime position dans la liste fonction entier nbElt() post-relation : retourne le nombre d lments de la liste

Avantage des listes chaines sur les tableaux


La taille des listes chaines peut augmenter dynamiquement, contrairement celle des tableaux. De plus, les manipulations par

fonction logique existe(e) entre : Telt e post-relation : retourne vrai si e figure dans la liste proc supprimer(e) entre : Telt e pre-condition : e appartient la liste post-relation : supprime e de la liste fonction entier nbOccurence(e) entre : Telt e post-relation : retourne le nombre d occ.de e dans la liste proc inverser() post-relation : permet d inverser la liste proc trier() post-relation : permet de trier par slection la liste fin spcification dbut implmentation Attributs privs Maillon* p //p correspond l adresse du premier maillon de la liste Fin Attributs privs Fin implmentations

Exercice 2
Utiliser la liste chaine pour dvelopper les fonctionnalits de la classe Pile

Exercice 3
Utiliser la liste chaine pour dvelopper les fonctionnalits de la classe File.

Vous aimerez peut-être aussi