【软考】后缀式

后缀式又称逆波兰式,其实他就是一种表达方式。后缀式把运算符写在运算对象的后面,好处是不用借助括号,根据运算对象和运算符出现的顺序运算就好了。

 

举个例子:

x-(y+c)*8的后缀式 怎么算

这个式子先算  y+c 所以  换成后缀式 yc+

然后这个结果 *8 换成后缀式就是 的结果 加上 8*

(y+c)*8的后缀式 就是 yc+8*

x- 的结果 ,后缀式就是 x加上的结果加上- ,即xyc+8*-

 

 

后缀式是用栈来存储的,为什么呢

 

看这张图


【软考】后缀式


栈中先放了 y ,然后 + 号来了, y c 从栈中出来, 进行运算c+y

②然后把结果再放回栈中

8 也放入栈中

这时候*号来了

8 c+y 的结果 被拿出来 运算 c+y* 8 ,然后把 结果放回到栈中

x也放入栈中

- 号来了

c+y* 8的结果和x 被拿出来 运算 x-c+y* 8

 

这就是这个运算的过程,并不难,画个图看看就好了