用栈实现中缀表达式的求值
步骤:
- 从左到右扫描,如果扫描到的运算符优先级大于栈顶运算符优先级,则入栈,否则,出栈并运算。
- 如果遇到右括号,一直出栈,直到遇到左括号为止。并且每一次出栈的运算符都要做一次运算。
- 扫描完整个表达式后,S2栈中如果还有运算符剩余,则全部出栈,逐个计算即可。
例题
画出对算数表达式 A - B * C / D - E ↑ F 求值时操作数栈和运算符栈的变化过程。(东南大学,2000)
步骤:
画出对算数表达式 A - B * C / D - E ↑ F 求值时操作数栈和运算符栈的变化过程。(东南大学,2000)