Correction TD 11 : Structure de donn´ees arbre
Licence 2 MASS semestre 2, 2007/2008
Exercice 1
Algorithme somme(a: arbre) : entier
d´ebut
si arbreEstVide?(a)alors
retourner 0
sinon
retourner (racine(a))2+ somme(arbreGauche(a)) + somme(arbreDroit(a))
fin si
fin
Exercice 2 : Evaluation d’expression
74 /
45 7
1.2 3.6
*
+ −
+
/
12 0
9.4
•Algorithme Eval(A: arbre d’expression) : 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 ”+” alors
retourner Eval(arbreGauche(A)) + Eval(arbreDroit(A))
fin si
si racine(A) est ”-” alors
1
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
fin si
fin si
fin
•Algorithme Points(f: arbre d’expression; n: entier) :
variable i: entier; x: r´eel
d´ebut
x←a
pour ide 1`a nfaire
point(x,EvalX(f,x))
x←x+b−a
n
fin pour
fin
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!