中->后
- 初始化一个空栈,用于存储运算符。
- 逐个扫描中缀表达式的字符:
- 如果是操作数,直接加入后缀表达式。
- 如果是左括号
(
,将其压入栈。 - 如果是右括号
)
,不断弹出栈顶元素并加入后缀表达式。 - 如果是操作符:
- 如果栈为空或者栈顶为左括号,直接压入栈。
- 否则,比较栈顶操作符和当前操作符的优先级:
- 若当前操作符优先级较高,直接压入栈。
- 若当前操作符优先级较低或相等,弹出栈顶元素并加入后缀表达式。
重复执行直到可以压入栈中。
- 扫描完毕后,将栈中剩余的元素依次加入后缀表达式。
(
,将其压入栈。)
,不断弹出栈顶元素并加入后缀表达式。