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.

46 lines
1.5 KiB

# BELLYNCK Manon
# GUILLAUMIN-TORRES Ambre
# COVIN Clara
class Expression :
"""Permet de représenter et manipuler une expression arithmétique sous la forme d'un arbre"""
def __init__ (valeur_racine, fils_gauche, fils_droit):
"""Constructeur"""
self.valeur = valeur_racine
self.gauche = fils_gauche
self.droit = fils_droit
def évalue (self):
"""Renvoie le résultat de l'expression"""
if self.valeur == '*':
return multiplication(valeur.gauche, valeur.droit)
elif self.valeur == '+':
return addition(valeur.gauche, valeur.droit)
def __str__ (self):
"""Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé."""
if a is None:
return
parcours_dfs_infixe(a.gauche)
print(a.valeur)
parcours_dfs_infixe(a.droit)
def multiplication(self):
"""Multiplie la valeur des fils gauche et droits"""
if self.gauche == int and self.droit == int :
return self.gauche * self.droit
def addition(self):
"""Additionne les valeurs des fils gauche et droits"""
if self.gauche == int and self.droit == int :
return self.gauche + self.droit
#test
exp = Expression('*',
Expression(6, None, None),
Expression('+',
Expression(4, None, None),
Expression(3, None, None)
)
)