Salut,
j'ai un petit programme en C à faire et je bloque sur une des fonctions.
Au départ j'ai une expression mathématique simple (des nombres et seulement les opérateurs + - * /) que je lis et que je mets dans un arbre binaire. Là pas de problème, j'ai une structure de "noeud"
struct Noeud{
char op;
char * valeur;
Noeud * gauche,* droite;
}
Je dois à partir de l'arbre afficher l'expression en format préfixe et infixe. Pour ça j'ai des fonctions récursives qui parcourent l'arbre et affichent les éléments dans le bon ordre.
Le problème, c'est que je dois afficher des parenthèses.
En préfixe, il me faut des parenthèses avant l'opérateur et après sa 2e opérande (du genre (+ 2 3) ou encore (+ (- 2 1) (+ 3 2)), etc).
En infixe je dois afficher l'expression avec le minimum de parenthèses (en tenant compte de la priorité des opérateurs donc).
J'ai beau chercher, je n'arrive pas à trouver l'algo qui me permettrait de mettre les parenthèses au bon endroit.
En préfixe je vois bien que ça doit marcher par "bloc" (opérateur et ses opérandes) mais j'arrive pas à l'écrire en C
Quelqu'un aurait une idée de comment faire ? J'ai essayé plein de trucs et ça n'a rien donné.
Merci.