Une pile est une structure de données qui fonctionne selon le principe LIFO (Last In, First Out) : le dernier élément ajouté est le premier élément retiré.
Il n'est pas obligatoire de créer une classe : on peut directement utiliser une liste comme une pile, en utilisant append() pour empiler et pop() pour dépiler.
pile = [] pile.append(1) #empile la valeur 1 pile.append(2) #empile la valeur 2 pile.append(3) #empile la valeur 3 print(pile.pop()) #dépile et affiche 3 (dernier élément ajouté) print(pile) #affiche [1, 2] (il reste 2 éléments dans la pile)
Python ne possède pas de type “Pile” prédéfini, en terminale il est aussi possible de créer sa propre classe.
On crée une classe Pile contenant une liste vide, et des méthodes pour empiler (ajouter), dépiler (retirer) et tester si la pile est vide.
class Pile: def __init__(self): """ Objectif : Crée une pile vide. Entrée : Sortie : """ self.contenu = [] def empiler(self, valeur): """ Objectif : Ajoute un élément au sommet de la pile. Entrée : valeur : tout type : la valeur à ajouter au sommet de la pile Sortie : """ self.contenu.append(valeur) def depiler(self): """ Objectif : Retire et renvoie l'élément situé au sommet de la pile. Entrée : Sortie : element : tout type : la valeur retirée du sommet de la pile """ element = self.contenu.pop() return element def est_vide(self): """ Objectif : Teste si la pile ne contient aucun élément. Entrée : Sortie : resultat : bool : True si la pile est vide, False sinon """ resultat = (self.contenu == []) return resultat p = Pile() p.empiler(1) p.empiler(2) p.empiler(3) print(p.depiler()) #affiche 3 (dernier élément empilé, premier dépilé) print(p.est_vide()) #affiche False, il reste encore des éléments dans la pile