|
|
@ -4,7 +4,6 @@ from Pile import Pile_chaine as Pile |
|
|
|
|
|
|
|
class Expression: |
|
|
|
def __init__(self, valeur, gauche=None, droite=None): |
|
|
|
|
|
|
|
self.valeur = valeur |
|
|
|
self.gauche = gauche |
|
|
|
self.droite = droite |
|
|
@ -18,13 +17,25 @@ class Expression: |
|
|
|
return self.gauche.evalue() + self.droite.evalue() |
|
|
|
if self.valeur == '*': |
|
|
|
return self.gauche.evalue() * self.droite.evalue() |
|
|
|
if self.valeur == '/': |
|
|
|
return self.gauche.evalue() / self.droite.evalue() |
|
|
|
if self.valeur == '-': |
|
|
|
return self.gauche.evalue() - self.droite.evalue() |
|
|
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
if type(self.valeur) == int: |
|
|
|
return str(self.valeur) |
|
|
|
else : |
|
|
|
return "({str(self.gauche)} {self.valeur} {str(self.droite)})" |
|
|
|
if self.valeur == '+': |
|
|
|
return "("+ str (self.gauche) + "+" + str (self.droite) + ")" |
|
|
|
if self.valeur == '*': |
|
|
|
return "("+ str (self.gauche) + "*" + str (self.droite) + ")" |
|
|
|
if self.valeur == '/': |
|
|
|
return "("+ str (self.gauche) + "/" + str (self.droite) + ")" |
|
|
|
if self.valeur == '-': |
|
|
|
return "("+ str (self.gauche) + "-" + str (self.droite) + ")" |
|
|
|
|
|
|
|
<<<<<<< HEAD |
|
|
|
# class Conversion: |
|
|
|
# lst = [self.valeur,self.gauche, self.droite] |
|
|
|
# def npi2tree (lst): |
|
|
@ -38,6 +49,28 @@ class Expression: |
|
|
|
|
|
|
|
|
|
|
|
# for i in lst (): |
|
|
|
======= |
|
|
|
|
|
|
|
|
|
|
|
if __name__ =="__main__": |
|
|
|
e = Expression('*', |
|
|
|
Expression(6, None, None), |
|
|
|
Expression('+', |
|
|
|
Expression(4, None, None), |
|
|
|
Expression(3, None, None) |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Conversion: |
|
|
|
lst = [self.valeur,self.gauche, self.droite] |
|
|
|
def npi2tree (lst): |
|
|
|
"""fonction npi2tree prenant en paramètre une liste correspondant à l’expression en notation |
|
|
|
polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" |
|
|
|
p = Pile(lst) |
|
|
|
for i in lst (): |
|
|
|
>>>>>>> 8b723c77703eb3cfad29b15dc55e72efae56af2a |
|
|
|
# if + or * : |
|
|
|
|
|
|
|
|
|
|
|