后缀表达式求值算法

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 08:18:59

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

后缀表达式求值算法
1 后缀表达式的求值
将中缀表达式转换成等价的后缀表达式后,求值时,不需要再考虑运算符的优先级,只需从左到右扫描一遍后缀表达式即可.具体求值步骤为:从左到右扫描后缀表 达式,遇到运算符就把表达式中该运算符前面两个操作数取出并运算,然后把结果带回后缀表达式;继续扫描直到后缀表达式最后一个表达式.
例如,后缀表达式(abc*+def*/-) 的求值
2 后缀表达式的求值的算法
设置一个栈,开始时,栈为空,然后从左到右扫描后缀表达式,若遇操作数,则进栈;若遇运算符,则从栈中退出两个元素,先退出的放到运算符的右边,后退出的 放到运算符左边,运算后的结果再进栈,直到后缀表达式扫描完毕.此时,栈中仅有一个元素,即为运算的结果.
例,求后缀表达式:1 2 + 8 2 - 7 4 - / * 的值,
栈的变化情如下: