# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

class Noeud():
    
    def __init__(self,valeur,fils_gauche=None,fils_droit=None):
        self.valeur=valeur
        self.fils_gauche=fils_gauche
        self.fils_droit=fils_droit

    def est_feuille(self):
        return (self.fils_gauche is None and self.fils_droit is None)

    def __repr__(self):
        if self.est_feuille():
            return str(self.valeur)
            # return "<{}>".format(self.label)
        if self.fils_gauche is None:
            str_gauche = "[]"
        else:
            str_gauche = self.fils_gauche.__repr__()
        if self.fils_droit is None:
            str_droite = "[]"
        else:
            str_droite = self.fils_droit.__repr__()
        return "[{},{},{}]".format(self.valeur, str_gauche, str_droite)
    
    def cree_feuille_gauche(self,fils):
        self.fils_gauche=Noeud(fils)
    
    def cree_feuille_droite(self,fils):
        self.fils_droit=Noeud(fils)
    
    def get_valeur(self):
        return self.valeur
    
    def get_fils_gauche(self):
        return self.fils_gauche
    
    def get_fils_droit(self):
        return self.fils_droit
    
    def infix_traversal(self): 
        s =  ""
        if self.fils_gauche is not None:
            s  +=  self.fils_gauche.infix_traversal() + "  "  
        s  +=  str(self.valeur)
        if self.fils_droit is not None:
            s  +=  "  "+self.fils_droit.infix_traversal() 
        if  self.est_feuille():
            return s 
        return "("+s+")"
    

# 3x(5+2)

arbre1=Noeud('*')
arbre1.cree_feuille_gauche(3)
arbre1.cree_feuille_droite(Noeud('+'))
arbre1.fils_droit.cree_feuille_gauche(5)
arbre1.fils_droit.cree_feuille_droite(2)

print(arbre1.infix_traversal())


    












    
    