INFO-MPx-2021/piles.py

52 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
class Pile(object):
def __init__(self):
self.pile = []
def estPileVide(self):
return self.pile == []
def empiler(self, x):
self.pile.append(x)
def depiler(self):
if self.estPileVide():
raise ValueError("pile vide")
return self.pile.pop()
def sommet(self):
res = self.depiler()
self.empiler(res)
return res
def affiche(self):
res = "sommet -> "
i = len(self.pile)-1
while i >= 0:
res += str(self.pile[i])+" | "
i -= 1
return res
# la fonction suivante permet une utilisation de print avec une pile
def __repr__(self):
return self.affiche()
print("----------------------------------------------------------------")
print("Essai de la classe pile")
p = Pile()
p.empiler(1)
p.empiler(2)
p.affiche()
p.depiler()
p.affiche()
p.depiler()
p.affiche()
p.empiler('*')
p.empiler('p')
p.empiler('m')
print(p)
p.empiler(1)
print(p)
print("----------------------------------------------------------------")