Pile
Algorithimiques et Sructures de Données II Première Année Classe Préparatoire A. Mahjoub L. Rejeb
ISSAT Sousse 2009-2010
Une pile est une liste particulière où les opérations d'ajout et de retrait se font au sommet de la pile. Le meilleur exemple pour illustrer les piles est celui d'une pile d'assiettes. Quand on dispose d'une pile d'assiettes, on n'ajoute une assiette qu'en haut et on ne retire que la première assiette sinon on risque de faire tomber toute la pile. Les piles sont basées donc sur le principe de gestion "Dernier entré, Premier sorti" (First in, Last out). Les piles sont très utilisées en informatique surtout dans l'exécution des appels de fonctions où elles permettent de sauvegarder toutes les informations (varaibles, adresse, etc.) ou encore lors des appels récursifs, etc.
Primitives :
Considérons dans ce qui suit qu'une pile est une suite d'éléments de type Typelem. Le type de données abstrait Pile correspondant est donc déni par les primitives suivantes : 1. La proécdure Init qui permet de retourner une Pile vide : Procédure Init (Var P:Pile) Précond : Postcond : transforme la Pile P en une pile vide
2. La fonction Vide qui permet de vérier si une Pile est vide : Fonction Vide (P : Pile): Booléen Précond : Postcond : retourne vrai si la Pile P est vide et faux sinon
3. La fonction Sommet retourne le premier élément de la Pile sans l'éliminer de celle-ci : Fonction Sommet (P : Pile): Typelem Précond : Non Vide(P) Postcond : Si P = a1 ..an alors Sommet← an
4. La procédure empiler qui insère un élément au sommet de la Pile Procédure Empiler (e: Typelem; Var P : Pile) Précond : Postcond : Si P = a1 ..an alors P devient a1 ..an , e
5. La procédure Dépiler qui supprime le sommet de la Pile et le récupère dans e. Procédure Dépiler (Var P : Pile, e:Typelem) Précond : Non vide (P) Postcond : Si P = a1 ..an alors P devient a1 ..an−1 et e ← an
Remarque. : pour la procédure Empiler, il faut que la Pile