Voici ce que j'ai crée comme structure pour mon arbre
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| /*Types de noeuds dans une expression:operateur, constante, variable*/
enum TypeInfoExpr {InfoExprOp, InfoExprCte, InfoExprVar};
union InfoExpr /*une info dans une expression*/
{
double cte;/*constante*/
char *nom;/*variable*/
char op;/*operateur*/
};
/*Une expression est un arbre binaire
Le sous arbre droit d'un operateur unaire est vide
Les sous arbres d'expressions constante ou variable sont vides*/
typedef struct noeud
{
enum TypeInfoExpr type;/*le type de l'information de ce noeud*/
union InfoExpr info;/*l'information*/
struct noeud *gauche,*droit;/*expression gauche,droite*/
}Noeud,*Expression; |
J'ai créer une fonction:
int AddVariable(const char *nom, int type, double val)
qui permet de savoir si la variable a une valeur qui lui a été affectée ou non.
Si c'est le cas la fonction renvoye la valeur et un nombre très grand dans la cas contraire.
Est ce que vous pouvez m'indiquer une méthode avec ce que j'ai crée,si il y a des ajouts ou suppression à faire concernant la structure de l'arbre.
Partager