# 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) ) )