写之前先举个例子,在人类的世界中,对于表达式a+d*c比较容易理解,但对于adc*+不会容易的理解,可是计算机在解2+5*4时是将这个表达式转化为254*+,然后再进行运算。其中类似a+b*c的表达式叫做中序表达式,而类似abc*+的表达式叫做后序式,计算机解答的时候需要使用后序式!
接下来先了解一下运算的过程:
对于表达式(a+b*c),计算机处理分为以下步骤:
1.将‘(’入栈,将a取出来,
2.将‘+’入栈
3.取出b,
4.将‘*入栈’
5.取出c
4.遇到‘)’时,从栈顶依次输出运算符,直到‘(’
5.根据后序表达式进行运算。
程序如下,用c/c++实现: