La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Quest-ce quune liste chainée ? Une liste chaînée est une structure de données à lintérieure de laquelle les objets sont ordonnés de façon linéaire.

Présentations similaires


Présentation au sujet: "Quest-ce quune liste chainée ? Une liste chaînée est une structure de données à lintérieure de laquelle les objets sont ordonnés de façon linéaire."— Transcription de la présentation:

1

2

3 Quest-ce quune liste chainée ? Une liste chaînée est une structure de données à lintérieure de laquelle les objets sont ordonnés de façon linéaire. À la différence dun tableau, où lordre linéaire est déterminé par les indices du tableau, lordre dans une liste chaînée est déterminé par un pointeur dans chacun des objets. - Introduction to algorithms / Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, p. 204

4 Représentation simpliste dune liste simplement chaînée 3 Maillon (ou nœud) Tête de liste Maillon (ou nœud) Pointeur vers un nœud Données (toutes de même type)

5 Caractéristiques dune liste simplement chaînée Pour consulter le i ème élément, il faut consulter les i-1 premiers éléments. Lajout ou le retrait dun nœud dans la liste ne nécessite le déplacement daucune donnée en mémoire. Les données nont pas besoin dêtre (et ne sont probablement pas) contigües en mémoire.

6 Les services à offrir dans une liste chaînée Création Consultation (au début, à la fin et ailleurs) Ajout (au début, à la fin et ailleurs) Retrait (au début, à la fin et ailleurs) Consultation de la longueur Une liste chaînée devrait minimalement offrir les fonctionnalités suivantes :

7 Fonctionnement des différents services Les diapositives qui suivent illustrent le fonctionnement des différents services dune liste simplement chaînée. Il existe plusieurs façon dimplanter une liste. Celle qui a été choisie pose que le premier nœud possède lindice 0 et que le dernier nœud possède lindice n – 1 où n est le nombre de nœuds de la liste.

8 0 Création de la liste On fait pointer la tête vers NULL. On initialise le nombre de nœuds à 0. ? ?

9 3 Consultation du i ème élément SI i 0 et i < nombre de nœuds de la liste ALORS On fait pointer un pointeur sur le premier nœud. TANT QUE i > 0 BOUCLE Faire pointer le pointeur vers le prochain nœud. i i - 1 FIN TANT QUE FINSI i 210

10 3 Ajout au début de la liste On tente de créer un nouveau nœud. SI la création fut un succès ALORS On fait pointer le nouveau nœud vers le premier élément de la liste (NULL si celle-ci est vide). On initialise le nœud. On fait pointer la tête de liste sur le nouveau nœud. On incrémente le nombre de nœuds. FINSI

11 SI la liste est vide ALORS On ajoute au début de la liste SINON On tente de créer un nouveau nœud. SI la création fut un succès ALORS On positionne un pointeur sur le dernier élément de la liste (voir consulter i ème élément). On initialise les champs du nouveau nœud. On fait pointer le dernier nœud sur le nouveau nœud. On incrémente le nombre de nœuds. FINSI 3 Ajout à la fin de la liste

12 SI i = 0 OU la liste est vide ALORS On ajoute au début de la liste SINON SI i < nombre de nœuds de la liste ALORS On tente de créer un nouveau nœud. SI la création fut un succès ALORS On positionne un pointeur sur le i-1 ème nœud. On initialise les données du nouveau nœud. On fait pointer le nouveau nœud sur le i ème nœud (NULL si on ajoute à la fin). On fait pointer le i-1 ème nœud sur le nouveau. On incrémente le nombre de nœuds. FINSI Ajout à la i ème position i

13 SI la liste nest pas vide ALORS On fait pointer un pointeur sur le premier élément de la liste. On fait pointer la tête de liste sur le deuxième nœud (NULL sil ny avait quun seul nœud). On détruit le nœud pointé par le pointeur. On décrémente le nombre de nœuds. FINSI 3 Retrait au début de la liste

14 SI la liste nest pas vide ALORS SI la liste ne contient quun seul élément ALORS Retirer au début de la liste. SINON On fait pointer un pointeur sur lélément à lindice nombre de nœuds – 1. On détruit le dernier nœud. On fait pointer lavant dernier vers NULL. On décrémente le nombre de nœuds. FINSI 3 Retrait à la fin de la liste

15 SI i 0 et i < nombre de nœuds de la liste ALORS SI la liste ne contient quun seul élément ALORS Retirer au début de la liste. SINON On fait pointer un pointeur sur lélément à lindice i – 1. On fait pointer un pointeur sur lélément à lindice i. On fait pointer le i-1 ème nœud sur le i+1 ème nœud (NULL si on détruit le dernier). On détruit le i ème nœud. On décrémente le nombre de nœuds. FINSI 3 Retrait à la i ème position

16 Pour plus dinformations, consultez Introduction to algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, chapitre 11.2 Merci au Service des Enseignements Généraux FIN


Télécharger ppt "Quest-ce quune liste chainée ? Une liste chaînée est une structure de données à lintérieure de laquelle les objets sont ordonnés de façon linéaire."

Présentations similaires


Annonces Google