中缀表达式要考虑运算符和运算对象关系并且运算符自身优先级。当自左至右扫描表达式的每一个字符时,若当前字符时运算对象,入对象栈,是运算符时,若这个运算符比栈顶运算符高则入栈,若这个运算符比栈顶运算符低则从对象栈出栈两个运算量,从运算符栈出栈一个运算符进行运算,并将其运算结果入对象栈,继续处理当前字符,直到遇到结束符。
后缀表达式不需要考虑运算符优先级和表达式中括号。只使用一个对象栈,当从左向右扫描表达式时,每遇到一个操作数就送入栈中保存,每遇到一个运算符就从栈中取出两个操作数进行当前的计算,然后把结果再入栈,直到整个表达式结束,这时送入栈顶的值就是结果。