波兰式 和 逆波兰式

波兰式又称中缀式
逆波兰式又称后缀式
还有一个前缀式

中缀式:
根据算符间的优先关系来确定运算的次序,此外,还应顾及括号规则
如 (A+B)*(C+D) = 
运算法则符合我们正常的运算规律

后缀式是有中缀式所得
如  AB+CD+* 
运算法则,从从左到右依次进栈,遇见字母入栈,遇见运算符,将前两个字母弹出,进行运算符计算后,将值在入栈,重复此过程
A入栈,B入栈,遇到+,A、B弹出,(A+B)入栈,C入栈,D入栈,遇见+,C、D弹出,(C+D)入栈,遇见*,(A+B)、(C+D)弹出,(A+B)*(C+D)入栈,最终栈里面的只有一个元素,该元素的值就为计算结果

前缀式:就是后缀式的逆序
即*+DC+BA
从右到左依次入栈,只是跟后缀式入栈方向相反,过程相同

你可能感兴趣的:(波兰式 和 逆波兰式)