后缀表达式-逆波兰

524 阅读1分钟

写在前面

我们把平时所用的标准四则运算表达式,即"9+ (3-1) X3+10/2"叫做中缀 表达式。因为所有的运算符号都在两数字的中间。

中缀表达式是不利于机器进行运算的

后缀表达式

中缀表达式"9+(3-1)X3+10/2"转化为后缀表达式"9 3 1-3*+ 10 2/+".

转化规则

规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后 缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低 于栈顶符号(乘除优先加减)则栈顶元素依次出栈并输出,并将当前符号进栈,一直 到最终输出后缀表达式为止。

后缀表达式的计算规则

规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符 号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,直到最终获得结果。

经过中缀变成后缀,后缀进行运算,结果是一样的

栈的应用

一个栈存放转化时的符号,一个栈存放转化后的后缀表达式