关于栈用于表达式求值的问题!紧急!

问题描述:

关于栈用于表达式求值的问题!紧急!
例如:用栈方式求表达式“46+5*(120-37)”
其后缀表达式为“46 5 120 37 - * +”计算过程为:
1、依次将46,5,120,37压入栈中;
2、遇到“-”取37,120,计算120-37,得83,将其压入栈中;
3、遇到“*”取出83,5,计算83*5,得415,将其压入栈中;
4、遇到“+”,取出415,46,计算46+415,得461,将其压入栈中;
5、表达式结束,计算过程完成.
现在问题就出现了:假如我将表达式写成“5*(120-37)+46”.
按照从左至右的顺序扫描后缀表达式,则压入栈的顺序为“5,120,37,46”
因为栈先入后出的特点,这样计算就会出现问题.
1个回答 分类:数学 2014-11-03

问题解答:

我来补答
在运算之前要先判断是不是应该做这个运算,有没有更优先级的运算.
比如做加法之前判断后面是不是乘法
 
 
展开全文阅读
剩余:2000
上一页:一道物理提题
也许感兴趣的知识