首页 > 中学数学试题 > 题目详情
关于栈用于表达式求值的问题!紧急!例如:用栈方式求表达式“46+5*(120-37)”其后缀表达式为“46 5 120
题目内容:
关于栈用于表达式求值的问题!紧急!
例如:用栈方式求表达式“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”
因为栈先入后出的特点,这样计算就会出现问题.
关于栈用于表达式求值的问题!紧急!
例如:用栈方式求表达式“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”
因为栈先入后出的特点,这样计算就会出现问题.
例如:用栈方式求表达式“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”
因为栈先入后出的特点,这样计算就会出现问题.
本题链接: