1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| liste 1 va contenir l'opération finale à exécuter
liste 2 est une liste temporaire, utilisée pour construire l'expression
liste R est la liste qui permettra de calculer le résultat
pour chaque symbole de l'expression
si le symbole est une opérande
insertion de l'opérande à la fin de liste 1
fin si
si le symbole est un opérateur
stocker l'opérateur dans op1
si liste 2 est non vide
faire
op2 = pop liste 2
si la précédence de op1 est supérieur à la précédence de op2
insertion de op2 à la fin de liste 1
fin si
tant que la précédence de op1 est supérieure à la précédence de op2
sinon
push de op2 sur liste 2 (on le remet en place)
fin si
push de op1 sur liste 2
fin si
si le symbole est une parenthèse ouvrante
push d'un marqueur P sur liste 2
fin si
si le symbole est une parenthèse fermante
faire
op = pop liste 2
si op n'est pas le marqueur P
insertion de op à la fin de liste 1
fin si
tant que op n'est pas le marqueur P
fin si
fin pour
pour chaque opérateur de liste 2
op = pop liste 2
insertion de op à la fin de liste 1
fin pour |