栈的计算方式和表达方式
计算方式
我们先来看一个中缀和后缀表达式计算处理对比的例子:
我们发现相对于中缀表达式,后缀表达式有以下的特点:
- 数字的先后相对顺序与中缀表达式一致
- 运算符的先后相对顺序与中缀表达式可能不同
- 没有小括号 () 的参与
- 每次运算是一个运算符和改符前两个数值确定
生成方式
我们再来看看后缀表达式是如何从中缀一步一步解析出来的,基本流程如下:
顺序遍历中缀表达式。
遇到数值则直接输出。
遇到运算符分三类处理
- 计算运算符
- 若优先级 > 栈顶运算符 则压栈
- 若优先级 <= 栈顶运算符 则将栈顶弹出,并循环判断。直到回到情况 1。
- 左括号 直接入栈。
- 右括号 依次弹出栈顶符号,直到出现配对的左括号。
最后处理运算符栈中剩余的符号,依次出栈即可。
好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!