1 如何计算后缀表达式的值式的求徝 将中缀表达式转换成等价的如何计算后缀表达式的值式后求值时,不需要再考虑运算符的优先级只需从左到右扫描一遍如何计算后綴表达式的值式即可。具体求值步骤为:从左到右扫描后缀表 达式遇到运算符就把表达式中该运算符前面两个操作数取出并运算,然后紦结果带回如何计算后缀表达式的值式;继续扫描直到如何计算后缀表达式的值式最后一个表达式
2 如何计算后缀表达式的值式的求值的算法 设置一个栈,开始时栈为空,然后从左到右扫描如何计算后缀表达式的值式若遇操作数,则进栈;若遇运算符则从栈中退出两個元素,先退出的放到运算符的右边后退出的 放到运算符左边,运算后的结果再进栈直到如何计算后缀表达式的值式扫描完毕。此时栈中仅有一个元素,即为运算的结果
从上可知,最后求得的如何计算后缀表达式的值式之值为6 与用中缀表达式求得的结果一致,但後缀式求值要简单得多 五、中缀表达式变成等价的如何计算后缀表达式的值式的算法 将中缀表达式变成等价的如何计算后缀表达式的值式,表达式中操作数次序不变运算符次序发生变化,同时去掉了圆括号转换规则是:设立一个栈,存放运算符首先栈为空, 编译程序从左到右扫描中缀表达式若遇到操作数,直接输出并输出一个空格作为两个操作数的分隔符;若遇到运算符,则必须与栈顶比较運算符级别比栈顶级 别高则进栈,否则退出栈顶元素并输出然后输出一个空格作分隔符;若遇到左括号,进栈;若遇到右括号则一直退栈输出,直到退到左括号止当栈变成空时, 输出的结果即为如何计算后缀表达式的值式将中缀表达式(1+2)*((8-2)/(7-4)) 变成等价的如何计算后缀表达式的值式。 现在用栈来实现该运算栈的变化及输出结果如下:
+ 退栈输出,退栈到( 止 |
- 退栈输出退栈到( 止 |
- 退栈输出,退栈到( 止 |
/ 退栈输出退棧到( 止 |