You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
39 lines
1.1 KiB
class Expression :
|
|
def __init__ (self, valeur, gauche, droit):
|
|
"""Initialise la valeur de la racine (’+’, ’*’ ou un entier) et les fils gauche et
|
|
droit (qui seront soit None si la racine est un entier, soit des arbres) ;"""
|
|
self.valeur = valeur
|
|
self.gauche = gauche
|
|
self.droit = droit
|
|
|
|
|
|
def evalue (self) :
|
|
"""Renvoie la valeur de l’expression."""
|
|
if self.gauche is None and self.droit is None :
|
|
return self.valeur
|
|
|
|
if self.valeur == "+" :
|
|
return self.gauche.evalue() + self.droit.evalue()
|
|
elif self.valeur == "*":
|
|
return self.gauche.evalue() * self.droit.evalue()
|
|
|
|
|
|
def __str__ (self) :
|
|
"""Affiche l'expression"""
|
|
if self.gauche is None and self.droite is None :
|
|
return str(self.valeur)
|
|
|
|
|
|
exp = Expression('*',
|
|
Expression(6, None, None),
|
|
Expression('+',
|
|
Expression(4, None, None),
|
|
Expression(3, None, None)
|
|
)
|
|
)
|
|
|
|
exp.evalue()
|
|
|
|
|
|
|
|
def npi2tree (
|