30 lines
870 B
Python
30 lines
870 B
Python
class Expr:
|
|
"""Classe implémentant un arbre d'expression."""
|
|
|
|
def __init__(self, g, v, d):
|
|
"""un objet Expr possède 3 attributs :
|
|
- gauche : la sous-expression gauche ;
|
|
- valeur : la valeur de l'étiquette, opérateur ou nombre ;
|
|
- droite : la sous-expression droite."""
|
|
self.gauche = g
|
|
self.valeur = v
|
|
self.droite = d
|
|
|
|
def est_une_feuille(self):
|
|
"""renvoie True si et seulement
|
|
si le noeud est une feuille"""
|
|
return self.gauche is None and self.droite is None
|
|
|
|
def infixe(self):
|
|
"""renvoie la représentation infixe de l'expression en
|
|
chaine de caractères"""
|
|
s = ...
|
|
if self.gauche is not None:
|
|
s = s + '(' + ... .infixe()
|
|
s = s + ...
|
|
if ... is not None:
|
|
s = s + ... + ...
|
|
return s
|
|
|
|
|