后缀表达式求值算法

1个回答

  • 1 后缀表达式的求值

    将中缀表达式转换成等价的后缀表达式后,求值时,不需要再考虑运算符的优先级,只需从左到右扫描一遍后缀表达式即可.具体求值步骤为:从左到右扫描后缀表 达式,遇到运算符就把表达式中该运算符前面两个操作数取出并运算,然后把结果带回后缀表达式;继续扫描直到后缀表达式最后一个表达式.

    例如,后缀表达式(abc*+def*/-) 的求值

    2 后缀表达式的求值的算法

    设置一个栈,开始时,栈为空,然后从左到右扫描后缀表达式,若遇操作数,则进栈;若遇运算符,则从栈中退出两个元素,先退出的放到运算符的右边,后退出的 放到运算符左边,运算后的结果再进栈,直到后缀表达式扫描完毕.此时,栈中仅有一个元素,即为运算的结果.

    例,求后缀表达式:1 2 + 8 2 - 7 4 - / * 的值,

    栈的变化情如下: