关于栈用于表达式求值的问题!紧急!
例如:用栈方式求表达式“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”
因为栈先入后出的特点,这样计算就会出现问题.
人气:441 ℃ 时间:2020-06-26 13:21:45
解答
在运算之前要先判断是不是应该做这个运算,有没有更优先级的运算.
比如做加法之前判断后面是不是乘法
推荐
猜你喜欢
- 英语翻译
- 平面直角坐标系中,点C(0,2),D(3,4),在X轴正半轴有一点A,且它到原点距离为1.求过点C、A、D的抛物线解析式
- x的平方-12x+10=0
- 一共有多少种营养元素
- 连词成句:speak People Chinese China in
- 连词成句:class,now,it's,for,science,time
- 1做碰撞实验室为什么两个光电门要尽可能靠得近一些且使的挡光条尽可能靠近光电门2
- 形容20世纪科技成就的成语