Если вы хотите проверить вывод, вы можете оценить выражение самостоятельно.Просто откройте редактор и используйте строку в качестве стека:
Ответ 1: abc ^ / de * + f / g-h +
a: a
b: a b
c: a b c
^: a b^c
/: a/b^c
d: a/b^c d
e: a/b^c d e
*: a/b^c d*e
+: a/b^c+d*e
f: a/b^c+d*e f
/: (a/b^c+d*e)/f
g: (a/b^c+d*e)/f g
-: (a/b^c+d*e)/f-g
h: (a/b^c+d*e)/f-g h
+: (a/b^c+d*e)/f-g+h
Похоже, что это неправильно.
Вы можете сделать второе самостоятельно.Это также неправильно.
Преобразование из инфикса в постфикс также легко выполнить вручную.Вы просто делаете операторы в правильном порядке, меняя arg op arg op arg...
на arg arg op arg op...
Здесь я использую []
для хранения уже преобразованных подвыражений:
a/b^c+d*e/f-g+h
a/[bc^]+d*e/f-g+h
[abc^/]+[de*f/]-g+h
[abc^/de*f/+g-h+]