Rechercher : dans
Par :

Problème arbre en C

hawary, le 26 oct 2009 à 01:13:28 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « problème arbre en C » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
3D Secure / Verified by Visa / SecureCode: Qu'est-ce que c'est ? VoirDepuis octobre 2008, les banques et commerçants en ligne ont commencé à adopter le système 3DSecure pour les paiements sur Internet. Qu'est-ce que c'est ? 3DSecure est appelé "Verified by Visa" chez Visa, et "SecureCode" chez Mastercard. (Les logos...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...