计算机一般利用后缀表达式来计算多项式:比如对于中缀表达式a+b*c-d/e
其后缀表达式为a b c * + d e / -
策略是:遇到运算数:存储起来
遇到运算符号:将最近存储的两个数进行运算,然后再把运算结果存储回去。
这显然就是后进先出的堆栈模型。
利用堆栈,具体例子:6 2 / 3 - 4 2 * +
遇到6 存储
遇到2 存储
遇到除号,将前边两位取出,进行前边除以后边的运算,得到的结果(3)再放回到堆栈中。
遇到3,放到堆栈中
遇到减号,取出前边的两位,进行减法运算,得到的结果0进行入栈。
遇到4 入栈。
遇到2,入栈
遇到乘号,将最近入栈的两个数取出做操作,得到8.入栈。
遇到加号,将最近在栈里的两个数进行出栈,操作得到最终的结果。