表达式a*(b+c)-d
的后缀表达式是:
a b c + * d -
A.
a b c + * d -
B.
a b c d * + -
C.
a b c * + d -
D.
- + * a b c d
开一个符号栈,遍历表达式
遇到数字直接输出,遇到符号要判断栈顶,并将符号栈顶优先级高于或等于当前符号的依次出栈
特殊情况:遇到左右括号
左括号的优先级最高,遇到右括号将符号栈全部输出直到遇到左括号。
例如 中缀表达式 9+(3-1)x3+10÷2的顺序
9 3 1 - 3 x + 10 2 ÷ +
9直接输出
+压入栈
左括号压入栈
3直接输出
减号压入栈
1直接输出
遇到右括号,减号出栈
乘号入栈
3直接输出
乘号优先级比加号高
乘号出栈
加号输出
10直接输出
除号入栈
2直接输出
除号出栈
加号出栈