Bonjour,
je cherche de l'aide pour resoudre ce problème :
Toute expression arithmétique correctement formée peut être représentée par un arbre binaire.
Une opération binaire est représentée par un sous-arbre binaire dont la racine détient
l'opérateur et dont les fils représentent respectivement le premier et le second opérande. Ainsi
l'expression ((9x)-6)
Une expression arithmétique, limitée aux seuls opérateurs binaires,
[1] un noeud interne qui contient un caractère représentant les opérateurs ['+', '-', '*', '/'] et
possède exactement deux fils.
[2] une feuille qui contient une lettre (une variable) ou un chiffre (0-9) et ne possède
aucun fils.
Ceci signifie entre autres que l'expression -1, doit s'écrire (0-1) pour respecter le caractère
binaire de tous les opérateurs.
Remarque:
- Pour étendre ce concept aux opérateurs unaires, il faut définir une troisième catégorie
[3] un noeud interne qui contient un caractère représentant les opérateurs ['+', '-', '/'] et
possède un fils unique. Par convention, le fils droit sera NULL.
- Pour étendre cette notion aux fonctions mathématiques comme sinus, exponentielle,
Pour l'entrée, on entrera l'expression en notation préfixée, ceci permet d'éviter la
gestion des parenthèses. Par exemple l'expression précédente :(9*x)-6 doit être
entrée sous la forme :-*9x6.
Pour la sortie, on utilisera la notation symétrique (ou infixe) et on veillera à limiter
l'usage des parenthèses au minimum, soit : (9*x)-6.
3/ Écrire une fonction qui permet de dériver une expression par rapport à une variable donnée.
L'arbre résultant doit être distinct de l'arbre d'entrée.
4/ Écrire une fonction qui permet d'évaluer une expression arithmétique par rapport à une
variable unique.
Configuration: Windows Vista
Firefox 3.5.3