From 1519618290d95fcc9c29bb7da1b3c7bd6fbe9360 Mon Sep 17 00:00:00 2001 From: manon Date: Sun, 16 Mar 2025 14:39:53 +0100 Subject: [PATCH] npi2tree fini --- oui.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/oui.py b/oui.py index 2f1bc85..a7a5bdd 100644 --- a/oui.py +++ b/oui.py @@ -41,6 +41,23 @@ class Expression: result += str(self.gauche) return result + def npi2tree(liste_npi): + """Convertit une liste représentant une expression en notation polonaise inversée en un arbre d'expression.""" + pille = [] + for element in liste_npi: + # Si c'est un opérateur (+, -, * ou /), on crée un nœud opérateur + if element in ('+', '-', '*', '/'): + droit = pille.pop() + gauche = pille.pop() + pille.append(Expression(element, gauche, droit)) # Créer un nouvel arbre et empiler + else: + # Sinon, ça veut dire que c'est un nombre donc on le convertit et on l'empile. + pille.append(Expression(int(element), None, None)) + + return pille[0] # Retourne l'arbre complet + + + #test: