36 lines
917 B
Python
36 lines
917 B
Python
|
|
class Pile:
|
|||
|
|
"""Classe définissant une structure de pile."""
|
|||
|
|
def __init__(self):
|
|||
|
|
self.contenu = []
|
|||
|
|
|
|||
|
|
def est_vide(self):
|
|||
|
|
"""Renvoie un booléen indiquant si la pile est vide."""
|
|||
|
|
return self.contenu == []
|
|||
|
|
|
|||
|
|
def empiler(self, v):
|
|||
|
|
"""Place l'élément v au sommet de la pile"""
|
|||
|
|
self.contenu.append(v)
|
|||
|
|
|
|||
|
|
def depiler(self):
|
|||
|
|
"""
|
|||
|
|
Retire et renvoie l'élément placé au sommet de la pile,
|
|||
|
|
si la pile n’est pas vide. Produit une erreur sinon.
|
|||
|
|
"""
|
|||
|
|
assert not self.est_vide()
|
|||
|
|
return self.contenu.pop()
|
|||
|
|
|
|||
|
|
def eval_expression(tab):
|
|||
|
|
p = Pile()
|
|||
|
|
for ... in tab:
|
|||
|
|
if element != '+' ... element != '*':
|
|||
|
|
p.empiler(...)
|
|||
|
|
else:
|
|||
|
|
if element == ...:
|
|||
|
|
resultat = ... + ...
|
|||
|
|
else:
|
|||
|
|
resultat = ...
|
|||
|
|
p.empiler(...)
|
|||
|
|
return ...
|
|||
|
|
|
|||
|
|
|