Bonjour,
J'aimerais faire un programme qui puisse faire du calcul formel (limité à l'addition et multiplication).
Pour se faire, j'ai créé une sorte d'arbre binaire en liste chainée:
Ainsi, la racine représente l'operateur (* ou +) et les 2 feuilles les variables (a et b par exemple); ID sert d'identifiant unique (1=gauche,2=racine,3=droite).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 typedef struct noeud { char symbole; int ID; struct noeud *pere; struct noeud *droite; struct noeud *gauche; } NOEUD, *pt_noeud;
Jusqu'ici, çà fonctionne bien, mais je me heurte à un probleme dans le cas de formules plus complexes: "(a+b)*c".
Le forum C m'a conseillé sur celui-ci en me disant qu'il fallait:Le problème, c'est que je vois pas du tout comment faire une telle chose.que tu écrives une grammaire simplifiée des expressions arithmétiques, ensuite un analyseur syntaxique qui construira l'arbre associé à ton expression.
Merci d'avance
Partager