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:
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;
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).
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:
que tu écrives une grammaire simplifiée des expressions arithmétiques, ensuite un analyseur syntaxique qui construira l'arbre associé à ton expression.
Le problème, c'est que je vois pas du tout comment faire une telle chose.

Merci d'avance