Académique Documents
Professionnel Documents
Culture Documents
DONNEES
Semestre 4
Département d’Informatique Pr. BELAQZIZ Salwa 2021-2022
Structures de Données
Plan
1
Les structures
2
La récursivité
3
Les listes chaînées
4
Les Piles et les Files
5
Les Arbres
Pr. Salwa BELAQZIZ 2
3 Introduction
Les
Listes
Chaînées
Linéaires :
o Tableaux
o Listes chaînées
o Piles
o Files
Non linéaires :
o Arborescentes: Arbres
o Relationnelles: Graphes
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 8
3 Introduction
Les
Listes
Chaînées
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 9
3 Terminologie
Les
Listes
Chaînées
(e2,..., eN) est appelée la queue de la liste (ou son reste). Il s'agit d'une liste.
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 12
3 Opérations sur les listes
Les
Listes
Chaînées
D’autres opérations :
o La fusion (ou la concaténation) de plusieurs listes.
o etc ...
Pr. Salwa BELAQZIZ 14
3 Introduction
Les
Listes
Chaînées
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 15
3 Implémentation des listes
Les
Listes
Chaînées
Avantages :
Simplicité
Inconvénients :
23
Pr. Salwa BELAQZIZ
3 Implémentation contiguë
Les
Listes
Chaînées
3. Opérations d’insertion :
3. Opérations d’insertion :
3. Opérations d’insertion :
Insérer un élément au rang K : (code C)
3. Opérations d’insertion :
4. Opérations de suppression :
4. Opérations de suppression :
4. Opérations de suppression :
5. Opérations de recherche :
Recherche séquentielle :
Parcourir (traverser) la liste de gauche à droite (ou de droite à
gauche) jusqu'à trouver l'élément « e ».
5. Opérations de recherche :
Il y a 3 cas :
a. Si e=A[m], on retourne True
b. Si e < A[m], on lance la recherche dans le sous-tableau A[d..m-1]
c. Si e > A[m], on lance la recherche dans le sous-tableau A[m+1..f]
Pr. Salwa BELAQZIZ 32
3 Implémentation contiguë
Les
Listes
Chaînées
Opérations de recherche :
Code C de la recherche binaire (dichotomique) :
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 34
3 Implémentation Chaînée
Les
Listes
Chaînées
Il suffit de suivre ces liens pour aller d'un nœud au nœud suivant
On peut utiliser des pointeurs pour lier entre eux les éléments
successifs.
Exemple :
Représentation en mémoire de la liste des patients selon leur
ordre d’arrivée dans une salle d’attente chez le médecin.
- Les piles
Permet de stocker les données dans l’ordre LIFO (Last In First Out =
Dernier Entré Premier Sorti).
- Les files
Permet de stocker les données dans l’ordre FIFO (First In First Out =
Premier Entré Premier Sorti).
Chaque nœud est alloué dans le tas (la mémoire libre dynamique)
en utilisant la fonction malloc().
=> la mémoire allouée au nœud continue d'exister jusqu'à sa
libération explicite via la fonction free()
MÉMOIRE 45
Pr. Salwa BELAQZIZ
3 Liste simplement chaînée
Les
Listes
Chaînées
Exercice :
Définir un type pour représenter des listes d'employés, avec
comme information pour chaque employé, son code, son âge et
son salaire.
46
Pr. Salwa BELAQZIZ
3 Liste simplement chaînée
Les
Listes
Chaînées
Opérations de base sur une liste chaînée :
1. La création
2. L'insertion
3. La suppression
4. Le parcours
59
Pr. Salwa BELAQZIZ
3 Insertion d’un nœud au début de la liste
Les
Listes
Chaînées
Code C :
5 9 4 2
pHead
5 9 4 2
pHead
Pr. Salwa BELAQZIZ 73
3 Suppression d’un nœud à la fin de la liste
Les
Listes
Chaînées
Code C :
5 9 4 2
pHead
previous current
• Parcours "gauche-droite" :
On commence par le premier élément de la liste, puis le deuxième
élément, jusqu’au dernier élément.
4. Écrire une fonction qui affiche à l’envers les éléments d’une liste.
Fonction récursive
Linéaires :
o Tableaux
o Listes chaînées
Terminologie
Opérations
Implémentation
Contiguë
Non contiguë
o Piles
o Files
Pr. Salwa BELAQZIZ 90
3 Implémentation chaînée
Les
Listes
Chaînées Il existe différents type de listes chainées :
Sauf :
Le premier nœud n’a pas de prédécesseur;
Le dernier nœud n’a pas de successeur.
Opérations :
97
Pr. Salwa BELAQZIZ
3 Liste doublement chaînée
Les
Listes
Chaînées
98
3 Liste doublement chaînée
Les
Listes
Chaînées Insertion d’un nœud à une position intermédiaire
1. Obtenir le nouveau nœud en utilisant "getNode()" :
newNode = getNode(x);
2. Vérifier que la position spécifiée est entre le premier nœud et
le dernier nœud.
Sinon, signaler une erreur de position.
Si oui, parcourir la liste jusqu’à atteindre la position désirée
Si tel est le cas, alors on fait pointer *pdL vers le nœud suivant p :
*pdL = p->next;