retourner Eval(arbreGauche(A)) - Eval(arbreDroit(A))
fin si
si racine(A) est ”*” alors
retourner Eval(arbreGauche(A)) * Eval(arbreDroit(A))
fin si
si racine(A) est ”/” alors
v←Eval(arbreDroit(A))
si v6= 0 alors
retourner Eval(arbreGauche(A)) / v
sinon
´ecrire(”Erreur : division par z´ero !!!”)
retourner maxInt
fin si
fin si
fin si
fin
•Algorithme EvalX(A: arbre d’expression; x: r´eel) : r´eel
variable v: r´eel
d´ebut
si arbreEstVide?(A)alors
retourner 0
sinon
si racine(A) est un nombre alors
retourner racine(A)
fin si
si racine(A) est ”x” alors
retourner x
fin si
si racine(A) est ”+” alors
retourner Eval(arbreGauche(A), x) + Eval(arbreDroit(A), x)
fin si
si racine(A) est ”-” alors
retourner Eval(arbreGauche(A), x) - Eval(arbreDroit(A), x)
fin si
si racine(A) est ”*” alors
retourner Eval(arbreGauche(A), x) * Eval(arbreDroit(A), x)
fin si
si racine(A) est ”/” alors
v←Eval(arbreDroit(A), x)
si v6= 0 alors
retourner Eval(arbreGauche(A), x) / v
sinon
´ecrire(”Erreur : division par z´ero !!!”)
retourner maxInt
fin si
2