37 lines
919 B
Python
37 lines
919 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 bon_parenthesage(ch):
|
|||
|
|
"""Renvoie un booléen indiquant si la chaîne ch
|
|||
|
|
est bien parenthésée"""
|
|||
|
|
p = Pile()
|
|||
|
|
for c in ch:
|
|||
|
|
if c == ...:
|
|||
|
|
p.empiler(c)
|
|||
|
|
elif c == ...:
|
|||
|
|
if p.est_vide():
|
|||
|
|
...
|
|||
|
|
else:
|
|||
|
|
...
|
|||
|
|
return ...
|
|||
|
|
|
|||
|
|
|