Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3
Piles et Files
En utilisant les listes chainées
Pr: Mohamed EL FAR
Structures de données
1. Les piles
2
Les piles
Définition
3
Les piles
Principe de LIFO
Une pile permet de modéliser un système régi
par le mécanisme « dernier arrivé premier
sorti » : (Lifo : last in, first out).
•L'action pour ajouter un nouvel élément au sommet
de la pile s'appelle Empiler
•L’action pour retirer l‘élément situé au sommetde
la pile s'appelle Dépiler
4
Les application des piles
Utilisation
De nombreuse applications s'appuient sur l'utilisation d'une pile, on peut
citer :
• Dans un navigateur web, une pile sert à mémoriser les pages Web
visitées.
• L'adresse de chaque nouvelle page visitée est empilée et l'utilisateur
dépile
•l'adresse de la page précédente en cliquant le bouton « Afficher la
page précédente ».
•L‘évaluation des expressions mathématiques en notation post-fixée (ou
polonaise inverse) utilise une pile.
•La fonction « Annuler la frappe » (en anglais « Undo ») d'un
traitement de texte mémorise les modifications apportées au texte
dans une pile.
• Vérification de parenthèse d'une chaine de caractères ;
• La récursivité (une fonction qui fait appel a elle même) ;
• etc.…
5
Les application des piles
Pile
6
Les application des piles
A
Pile
7
Les application des piles
8
Implémentation d’une pile
Représentation d'une Pile
Représentation contiguë (par tableau) :
Les éléments de la pile sont rangés dans un tableau
Un entier représente la position du sommet de la pile
1
Implémentation d’une pile
On peut implémenter une pile à l’aide de la même structuration qu’une liste chainée
@
*P
e @ e @ e @ e NUL
1 2 3 4 L
1
Implémentation d’une pile
Pile chaînée
Pile
Sommet de la pile
pointée par p
10 20
p Pointeur
NULL
Cellule contenant la
valeur 5
50
Pointeur sur cellule
suivante
Pile chaînée
Les éléments (nœuds) de la pile sont chaînés entre eux
//type clé
//type Pile
typedef int cle; typedef struct {
//type nœud Nœud* premier;
typedef struct noeud{ Nœud* dernier;
cle Valeur; Int nbr;
struct nœud *suivant; }Pile
} Noeud;
Spécification d’une pile chaînée
Sommet
Debut Cle1 & du svt Cle2 & du svt Clen & du svt NULL
13
Réalisation d’une pile chaînée (1)
v & du svt
nœud N
Réalisation d’une pile chaînée (2)
2
Les Files
Définition
Une File (queue en anglais ) est une structure de
données dans laquelle l'insertion se fait à la fin et la
suppression d'un élément s'effectue à partir de début
de cette structure.
Le fonctionnement ressemble à une file d'attente :
les premières personnes arrivées, se sont les
premières personnes à servir.
2
Les files
Principe de FIFO
Une file permet de modéliser un système régi par le
mécanisme "premier arrivé premier sorti" ; on dit
souvent FIFO (First in, First out)
•L'action pour ajouter un nouvel élément s'appelle
Enfiler
File
Les application des files
File
Les application des files
Utilisation
• En général, on utilise des files pour mémoriser temporairement des
transactions qui doivent attendre pour être traitées ;
•Les serveurs d'impression, qui doivent traiter les requêtes dans l'ordre dans
lequel elles arrivent, et les insèrent dans une file d'attente ( ou une queue) ;
•Certains moteurs multitâches, dans un système d'exploitation, qui doivent
accorder du temps-machine a chaque tâche, sans en privilégier aucune ;
•Un algorithme de parcours en largeur utilise une file pour mémoriserles nœuds
visités ;
•On utilise aussi des files pour créer toutes sortes de mémoires tampons (en
anglais buffers).
• etc.…
Les application des files
@ e @ e @ e @ e NUL
1 2 3 4 L
*dernier
10 20
tete
Pointeur
queue NULL
50
Cellule contenant la
valeur 30 Queue de filepointée
par queue
3
Implémentation d’une File
//Définir la structureFile
typedef struct
{
Element* premier;
Element* dernier;
Int nbr;
} File;
Opérations sur une file