Vous êtes sur la page 1sur 59

LES STRUCTURES DE

DONNEES

Semestre 4 2021-2022
Département d’Informatique Pr. BELAQZIZ Salwa
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
4 Introduction
Piles
&
Files

Les structures de données peuvent être :

 Linéaires :
o Tableaux
o Listes chaînées
o Piles (STACK)
o Files

Pr. Salwa BELAQZIZ 3


4 Définition
Piles
&
Files

 Une pile (stack) est une structure de données linéaire dans


laquelle les opérations d’insertion et de suppression sont réalisées
à une extrémité fixée de la liste, appelée « sommet de la pile ».

 Dans une pile, le dernier élément entré (inséré) est le premier


sorti (supprimé).

 Le terme « Last In, First Out » ou LIFO indique cette stratégie


utilisée avec une pile.

Pr. Salwa BELAQZIZ 4


4 Applications des piles
Piles
&
Files

 Utilisées par les compilateurs pour vérifier le bon parenthésage.


 Utilisées pour évaluer une expression postfixée.
 Utilisées pour convertir une expression infixée en une expression
postfixée/préfixée.
 Dans une procédure ou une fonction récursive, tous les arguments
intermédiaires et toutes les valeurs de retour sont stockées dans
une pile.
 Durant l’appel d’une fonction, les arguments et les adresses de
retour sont empilées dans la pile et dépilées de cette pile après
une instruction « return ».
 …
Pr. Salwa BELAQZIZ 5
4 Opérations
Piles
&
Files

 Insertion dans une pile :


L’opération « insérer » dans une pile est souvent appelée «empiler »
(push).

 Suppression dans une pile :


L’opération « supprimer » dans une pile est souvent appelée
«dépiler » (pop).

 Sommet de la pile :
L’opération « retourner sommet » dans une pile est souvent appelée
«sommet » (top).
Pr. Salwa BELAQZIZ 6
4 Opérations
Piles
&
Files
 Opération « Empiler » :

(Top = -1) (Top = 0) (Top = 1) (Top = 2)

Pr. Salwa BELAQZIZ 7


4 Opérations
Piles
&
Files
 Opération « Dépiler » :

(Top = 2) (Top = 1) (Top = 0)

Pr. Salwa BELAQZIZ (Top = -1)


8
4 Représentation contiguë avec un tableau
Piles
&
Files
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 9


4 Représentation contiguë avec un tableau
Piles
&
Files
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 10


4 Représentation contiguë avec un tableau
Piles
&
Files
«empiler » (push)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 11


4 Représentation contiguë avec un tableau
Piles
&
Files
«Dépiler » (pop)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 12


4 Représentation contiguë avec un tableau
Piles
&
Files
«Sommet » (top)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 13


4 Représentation contiguë avec un tableau
Piles
&
Files
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 14


4 Représentation NON contiguë
Piles
&
Files
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 15


4 Représentation NON contiguë
Piles
&
Files
«empiler » (push)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 16


4 Représentation NON contiguë
Piles
&
Files
«Dépiler » (pop)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 17


4 Représentation NON contiguë
Piles
&
Files
«Sommet » (top)
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 18


4 Représentation NON contiguë
Piles
&
Files
 Exemple : une pile d’entiers

Pr. Salwa BELAQZIZ 19


4 Introduction
Piles
&
Files

Les structures de données peuvent être :

 Linéaires :
o Tableaux
o Listes chaînées
o Piles (STACK)
o Files (queue)

Pr. Salwa BELAQZIZ 20


4 Définition
Piles
&
Files

 Une file (queue) est une structure de données linéaire dans


laquelle l’opération d’insertion est réalisée à une extrémité de la
liste (la queue), et l’opération de suppression est réalisée à l’autre
extrémité de la liste (la tête).

 Dans une file, le premier élément entré (inséré) est le premier


sorti (supprimé).

 Le terme « First In, First Out » ou FIFO indique cette stratégie


utilisée avec une file.

Pr. Salwa BELAQZIZ 21


4 Opérations
Piles
&
Files

Insertion dans une file :


 L’opération « insérer » dans une file est souvent appelée «enfiler »
(enqueue).

Suppression dans une pile :


 L’opération « supprimer » dans une file est souvent appelée
«défiler » (dequeue).

Pr. Salwa BELAQZIZ 22


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :

• Considérons une file qui peut contenir au maximum 5 éléments.

• La queue est repérée par un pointeur appelé «Rear » (= en arrière).

• La tête est repérée par un pointeur appelé «Front » (= en avant).

Pr. Salwa BELAQZIZ 23


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :

• Initialement, la file est vide :

File vide

Pr. Salwa BELAQZIZ 24


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :

• Insertion de 11 (en queue) :

Pr. Salwa BELAQZIZ 25


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :

• Insertion de 22 (à la file) :

Pr. Salwa BELAQZIZ 26


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :

• Insertion de 33 (à la file) :

Pr. Salwa BELAQZIZ 27


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :


Maintenant, retirons un élément de la file.
 L’élément à retiré est l’élément qui se trouve en tête de la file
(Front).
 L’état de la file sera alors :

Pr. Salwa BELAQZIZ 28


4 Illustration d’une File
Piles
&
Files

Illustration d’une file :


Retirons encore un élément de la file.
 L’élément à retiré est l’élément qui se trouve en tête de la file
(Front =1 => l’élément 22) :

Pr. Salwa BELAQZIZ 29


4 Illustration d’une File
Piles
&
Files
Illustration d’une file :
1èr Cas :
Retirons encore un élément de la file : l’élément à retirer est
l’élément qui se trouve en tête de la file (Front =2 => l’élément 33) :

if (F == R)
F = R = -1;

Pile vide Pr. Salwa BELAQZIZ 30


4 Illustration d’une File
Piles
&
Files
Illustration d’une file :
1èr Cas :
Maintenant, insérons les éléments 44 et 55 :

Pr. Salwa BELAQZIZ 31


4 Illustration d’une File
Piles
&
Files
Illustration d’une file :
2ème Cas :
Insertion des éléments 44 et 55 :

Pr. Salwa BELAQZIZ 32


4 Illustration d’une File
Piles
&
Files
Illustration d’une file :
2ème Cas :

Maintenant, il est impossible d’insérer un élément 66 même s’il y a


deux positions vacantes en tête de la file.

 Pour régler ce problème, on peut décaler les éléments de la file


en tête (Front) de celle-ci pour créer des positions vacantes en
queue de la file : les valeurs de Front et Rear doivent être
ajustées correctement.

Pr. Salwa BELAQZIZ 33


4 Illustration d’une File
Piles
&
Files
Illustration d’une file :
2ème Cas :
 L’élément 66 peut maintenant être inséré en queue.

Après décalage

Pr. Salwa BELAQZIZ 34


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :

Pr. Salwa BELAQZIZ 35


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (sans ajustement des positions vacantes) :

Pr. Salwa BELAQZIZ 36


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (sans ajustement des positions vacantes) :
Insertion : « enfiler »

Pr. Salwa BELAQZIZ 37


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (sans ajustement des positions vacantes) :
Suppression : « defiler »

Ajustement des positions Si tete = queue

Pr. Salwa BELAQZIZ 38


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (sans ajustement des positions vacantes) :

Pr. Salwa BELAQZIZ 39


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (sans ajustement des positions vacantes) :

tete = queue = -1
Donnez la valeur à enfiler: 10
Donnez la valeur à enfiler : 20
10 20
L’element qui doit etre défilé est : 10
20
L’element qui doit etre défilé est : 20

La file est vide 40


Pr. Salwa BELAQZIZ
4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

 Tous les éléments reculent d’une place lorsque le premier est


servi (supprimé).

 Le pointeur de tête (Front) est alors inutile, puisqu’il est toujours


égal à 0.
 Par conséquent, la file est gérée par un tableau et un seul pointeur
(Rear) et lorsqu’un élément est supprimé, les autres éléments
restants sont décalés à gauche et la valeur de «Rear » est
décrémentée.
Pr. Salwa BELAQZIZ 41
4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

Pr. Salwa BELAQZIZ 42


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

43
Pr. Salwa BELAQZIZ
4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

Pr. Salwa BELAQZIZ 44


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

Pr. Salwa BELAQZIZ 45


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
1. Solution par décalage à gauche :

Pr. Salwa BELAQZIZ 46


4 Représentation des Files
Piles
&
Files Représentation d’une file par un tableau :
Opérations (avec ajustement des positions vacantes) :
2. Solution par tableau circulaire :

 Efficace : car elle minimise la place nécessaire dans le tableau, tout en


évitant les opérations de décalage.

 Lorsque la tête (Front) devient égale à la queue (Rear) (modulo N), la file
est soit vide, soit pleine.

 On est donc amené à distinguer les 2 possibilités en utilisant deux


indicateurs booléens «vide » et « pleine ».

Pr. Salwa BELAQZIZ 47


4 Représentation des Files
Piles
&
Files Représentation d’une file par une liste chaînée :

C’est une représentation classique de liste chaînée, dans laquelle


on utilise un pointeur supplémentaire : le pointeur vers la
dernière cellule, ce qui permet d’accélérer l’algorithme d’insertion
à la fin de la liste.

Pr. Salwa BELAQZIZ 48


4 Représentation des Files
Piles
&
Files Représentation d’une file par une liste chaînée :

Pr. Salwa BELAQZIZ 49


4 Représentation des Files
Piles
&
Files Représentation d’une file par une liste chaînée :

Pr. Salwa BELAQZIZ 50


4 Représentation des Files
Piles
& Insertion : « enfiler »
Files

Pr. Salwa BELAQZIZ 51


4 Représentation des Files
Piles
&
Files Représentation d’une file par une liste chaînée :
Suppression : « defiler »

Pr. Salwa BELAQZIZ 52


4 Représentation des Files
Piles
&
Files Représentation d’une file par une liste chaînée :

Pr. Salwa BELAQZIZ 53


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Dans ce cas, la file sera représentée par un pointeur vers la


dernière cellule.

Pr. Salwa BELAQZIZ 54


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Pr. Salwa BELAQZIZ 55


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Pr. Salwa BELAQZIZ 56


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Pr. Salwa BELAQZIZ 57


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Pr. Salwa BELAQZIZ 58


4 Représentation des Files
Piles
&
Files Représentation d’une par file une liste circulaire :

Pr. Salwa BELAQZIZ 59

Vous aimerez peut-être aussi