NeoXsysm & DiAboLiK ALGORITHME Pages 1/8
DUT info 1er année
Les piles
Une pile est utilisée pour sauvegarder temporairement des informations.
I. Définition et primitives d’accès
A. Définition
Une pile est une liste telle qu’on passe d’un élément au suivant par adjonction ou suppression
d’un élément en tête.
Dans une pile, on distingue une base et un sommet. Toutes les mises à jour ne se font qu’à
partir du sommet. Théoriquement une pile est de taille infinie, en pratique elle est toujours
formée d’un nombre fini d’éléments. Les adjonctions s’arrêtent lorsque la taille maximale
(maximum) de la pile est atteinte, on parle de débordement de pile.
B. Primitives
1. Empiler
2. Dépiler
3. Sommet pile
Retourne la valeur du sommet.
4. Pile vide
5. Pile pleine
9
5
2
3
5
2
3
5
2
3
9
5
2
3
5
2
3
NeoXsysm & DiAboLiK ALGORITHME Pages 2/8
DUT info 1er année
6. Initpilevide
Une pile peut être représentée physiquement par un tableau (de manière
contigu), une liste chaînée, ou enfin un fichier.
II. Représentation contiguë d’une pile
Pile [1..n]
Taille maxi dimpile (n)
Sommet (indice du dernier stocké)
A. Empiler
Procédure empiler(valeur)
Val TIND valeur
Début
Si pilepleine
Alors
Afficher (« Erreur : la pile est pleine »)
Sinon
Sommet sommet +1
Pile[sommet] valeur
Finsi
Fin
B. Dépiler
Procédure dépiler(valeur)
Ref TIND valeur
Début
Si pilevide
Alors
Afficher(« Erreur : Pile vide »)
Sinon
Valeur pile[sommet]
Sommet sommet -1
Finsi
Fin
C. Sommet pile
Fonction TIND sommetpile
Début
Retourner(pile[sommet])
Fin
NeoXsysm & DiAboLiK ALGORITHME Pages 3/8
DUT info 1er année
D. Pile vide
Fonction logique pilevide()
Début
Retourne(sommet = 0)
Fin
E. Pile pleine
Fonction logique pilepleine()
Début
Retourne(sommet = dimpile)
Fin
F. Initialisation de la pile
Procédure initpile()
Début
Sommet 0
Fin
III. Représentation chaînée d’un pile
A. Procédure empiler
Procédure empiler(elem)
Val TIND elem
Début
Insertete(pile, elem)
Fin
| /
NeoXsysm & DiAboLiK ALGORITHME Pages 4/8
DUT info 1er année
B. Procédure dépiler
Procédure dépiler(elem)
Ref TIND elem
Début
Si pilevide
Alors
Afficher(« Erreur : Pile vide »)
Sinon
Elem (*pile).info
Supptete(pile)
Finsi
Fin
C. Procédure pilevide
Fonction logique pilevide()
Début
Retourne(pile = NULL)
Fin
D. Initialisation de la pile
Procédure initpilevide()
Début
Pile NULL
Fin
E. Sommet pile
Fonction TIND sommetpile()
Début
Retourne((*pile).info)
Fin
IV. Traitement des expressions arithmétiques à l’aide d’une pile
A. Définition
1. Expression écrite sous forme entièrement parenthèsée.
(a + b) x c
((a + b) x c)
((( a / b ) = ) ^ (e < f))
P pile
Pile (*pile).suivant
Laisser(p)
{
NeoXsysm & DiAboLiK ALGORITHME Pages 5/8
DUT info 1er année
2. Expression sous forme préfixée
(a b) + c
+-abc
((┐(a < b)) ^ c)
^┐<abc
3. Expression écrite sous forme postfixée
((a b) + c)
ab-c+
4. Expression écrite sous forme in-fixé
C’est la manière normal d’écrire les opérations.
B. Evaluation d’une expression
1. Postfixée
Soit l’expression :
((a x b) / (c + d))
abxcd+/
a = 20
b = 4
c = 9
d = 7
a b x c d + / # a b x c d + / # a b x c d + / # a b x c d + / #
20
4
20
80
9
80
7
9
80
16
80
5
fin
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !