Soit un arbre syntaxique contenant une expression arithmétique, basé sur les déclarations suivantes:
type Contenus = (Operande, Operateur);
Operations=(Addition, Soustraction, Multiplication, Division);
VersNoeud = ^Noeud;
Noeud = record case Contenu: Contenus of
Operande: (Valeur: integer);
Operateur:(Operation: Operations;
Gauche,Droite: VersNoeud);
end; (* Noeud *)
Ecrivez une procédure qui convertira un tel arbre syntaxique en une
chaîne contenant la même expression arithmétique en notation
polonaise postfixée. Vous utiliserez à cet effet les
déclarations suivantes:
type VersMaillon = ^Maillon;
Maillon = record
Suivant: VersMaillon;
case Contenu: Contenus of
Operande: (Valeur: integer);
Operateur:(Operation: Operations);
end; (* Maillon *)
Pour rappel, la notation polonaise postfixée consiste à noter une
expression arithmétique avec l'opérateur à la suite des
opérandes sur lesquels il porte. Cette notation ne nécessite donc
pas de parenthèses. Par exemple, l'expression
(85 - 9) * ((78 + 45) / (6 - 2)) est notée, en notation polonaise
postfixée, de la façon suivante:
85 9 - 78 45 + 6 2 - / *. Pour vous aider, sachez que cette conversion
correspond à une des méthodes classiques de parcours d'arbre.
Site Hosting: Bronco