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

关于栈用于表达式求值的问题!紧急!
例如:用栈方式求表达式“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”
因为栈先入后出的特点,这样计算就会出现问题.
sunvlong 1年前 已收到1个回答 举报

上上-签 幼苗

共回答了18个问题采纳率:83.3% 举报

在运算之前要先判断是不是应该做这个运算,有没有更优先级的运算.
比如做加法之前判断后面是不是乘法

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.027 s. - webmaster@yulucn.com