Rechercher : dans
Par :

Formule postfixée en arbre binaire (lang.C)

Dernière réponse le 8 déc 2007 à 11:56:00 phoenix, le 27 déc 2003 à 12:20:43 
 Signaler ce message aux modérateurs

Bonjour, je souhaite trouver un programme en langage C qui transforme une formule postfixée (chaine de caracteres) entrer par l'utilisateur en un arbre binaire. Par exemple si je tape : 532-+ (résultat : 5+(3-2)=6)
la procédure doit transformer cette formule en un arbre binaire à fabriquer.
+
5 -
3 2
Merci d'avance à tous ceux qui pourront m'aider...

Meilleures réponses pour « Formule postfixée en arbre binaire (lang.C) » dans :
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
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...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

 usma3000, le 8 déc 2007 à 11:56:00

Bonjour
Alors pour ce genre de programme si tu veux transformer ton arbre binaire en une formule postfixée le mieux c'est d'utiliser une structure de pile ainsi tu commences à empliler les chiffres 532 dès que t'arrives à un symbol d'évaluation (* + - ..ect) tu dépiles les deux chiffres que t'avais empilé tu fais l'opération avec ces deux chiffres dépilés et tu empiles le résultat. Ainsi de suite tu parcours ton arbre jusqu'à retourner le résultat final.
J'espère que c'est assez clair
Cet algorithme très connu c'est la natation polonaise.

Répondre à usma3000