52 lines
1.1 KiB
Python
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("----------------------------------------------------------------")
|