Correction TD 11 : Structure de donn´ees arbre
Licence 2 MASS semestre 2, 2007/2008
Exercice 1
Algorithme somme(a: arbre) : entier
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
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
vEval(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
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
vEval(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
ebut
xa
pour ide 1`a nfaire
point(x,EvalX(f,x))
xx+ba
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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !