Les Piles de données

publicité
05/05/2017
ALGORITHME ET
STRUCTURES DE DONNÉES II
LES PILES
Élaboré par : Dr. Jihène Tounsi
ISG de Sousse
[email protected]
Qu’est ce qu’une pile


Une pile est une structure de données séquentielle
basé sur le principe « Last in first out »
Le sommet de la pile est le dernier élément ajouté.
Dernier élément inséré
Sommet
Sens d’ajout
des éléments
Premier élément inséré
1
05/05/2017
Principe de fonctionnement



On accède à une pile seulement à travers son
sommet.
Quand on ajoute un élément à la pile, le sommet
devient le nouvel élément ajouté. Ainsi, le sommet
pointe toujours sur le dernier élément de la pile.
Pour accéder à un élément de la pile, nous devons
dépiler les éléments à partir du sommet afin
d’accéder à l’élément en question.
Les opérations élémentaires

CéerPileVide
 Permet

Empiler
 Permet

de créer une pile vide
d’ajouter un élément à la pile
Dépiler
 Permet
de supprimer le sommet de la pile si elle n’est
pas vide

PileVide
 Permet
de vérifier si la pile est vide ou non
Les autres opérations découlent de ces dernières
2
05/05/2017
Implémentation de la pile

Implémentation avec une taille illimitée
Le nombre des éléments à stocker n’est pas connu à
l’avance.
 Utilisation des pointeurs.
 Création dynamique des éléments à stocker (variante de la
liste chaînée)


Implémentation avec une taille limitée
Le nombre maximale des éléments à stocker est connu à
l’avance.
 Utilisation du tableau.
 Implémentation contigüe et statique.

Implémentation dynamique
3
05/05/2017
Structure de la pile


Donnée : l’élément à stocker.
Un pointeur sur l’élément précédent.
Algorithme_ExemplePile;
Type
Element = enregistrement
Donnée:entier
Prec:^element
Fin enregistrement
Pile=^element
Variables
P:Pile
Debut
….
Fin.
Les opérations élémentaires

PileVide(P:Pile):booléen
 Une
fonction qui Retourne Vrai si la pile est vide Faux
sinon.
Algorithme_ExemplePile;
Type
…
Fonction PileVide(P:Pile):booléen
Debut
/*Si la Pile est vide càd que le
pointeur est Nulle. Il ne pointe sur
rien*/
Si(P==Null) alors
Retourner Vrai
Sinon
Retourner Faux
Fin Si
Fin Fonction
Variables
P:Pile
Debut
….
Fin.
4
05/05/2017
Les opérations élémentaires

Empiler(P:Pile , e:entier)
 e:
l’élément à ajouter à la pile.
 Les étapes de l’opération :
 Créer
un nouvel élément de type Pile.
 Vérifier que l'élément a bien été créé.
 Affecter « e » à la donnée de l’élément créé.
 Changer le sommet de la pile.
 On fait pointer le sommet de la pile sur cet élément.
Les opérations élémentaires

Dépiler(P:Pile):entier
Une fonction retournant l’élément stocké au sommet de la
pile.
 Les étapes de l’opération :

Vérifier si la pile n'est pas vide.
 Si elle ne l'est pas, stocker dans un élément temporaire l'avantdernier élément de la pile.
 Stocker dans une variable locale la valeur étant stockée dans le
dernier élément de la pile.
 Supprimer le dernier élément.
 Faire pointer la pile vers notre élément temporaire.
 Retourner la valeur dépilée.

5
05/05/2017
Implémentation statique
Structure de la pile


Tab : Tableau des éléments à stocker.
L’indice du sommet de la pile.
Algorithme_ExemplePile;
Type
Element=enregistrement
…
Fin enregistrement
Pile = enregistrement
tab:Tableau[1,100] d’element
Sommet:entier
Fin enregistrement
Variables
P:Pile
Debut
….
Fin.
6
05/05/2017
Les opérations élémentaires

CréerPileVide(P:Pile par adresse)
 Une
fonction qui Retourne Vrai si la pile est vide Faux
sinon.
Algorithme_ExemplePile;
Type
…
Fonction PileVide(P:Pile):booléen
Debut
/*Si la Pile est vide càd que le
Sommet =0. */
Si(P.Sommet==0) alors
Retourner Vrai
Sinon
Retourner Faux
Fin Si
Fin Fonction
Variables
…
Debut
….
Fin.
Les opérations élémentaires

CréerPileVide(P:Pile par adresse)
 Une
procédure qui initialise Sommet à 0.
 P.S: l’ index du tabeau débute à 1.
Algorithme_ExemplePile;
Type
…
Procédure CréerPileVide(P:Pile par adresse)
Debut
P.Sommet=0
Fin Procédure
…
Fin.
7
05/05/2017
Les opérations élémentaires

Empiler(P:Pile par adresse, e:entier)
 e:
l’élément à ajouter à la pile.
 Les étapes de l’opération :
 Vérifier
que la pile n’est pas pleine.
 Ajouter l’élément à Sommet+1
 Incrémenter Sommet
Les opérations élémentaires

Dépiler(P:Pile):entier
 Une
fonction retournant l’élément stocké au sommet de
la pile.
 Les étapes de l’opération :
 Vérifier
si la pile n'est pas vide.
 Si elle ne l'est pas, récupérer l’élément dans une variable
temporaire.
 Décrémenter Sommet.
 Retourner la variable temporaire.
8
05/05/2017

Fin du chapitre Pile…
9
Téléchargement