====== Piles ======
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é.
===Pile implémentée avec une liste : pile.append(valeur) (empiler), pile.pop() (dépiler)===
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.
===p = Pile() p.empiler(valeur) p.depiler() p.est_vide()===
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