单选题
利用栈求表达式的值时,设立运算数栈s。假设栈S只有两个存储单元,在下列表达式中,不发生溢出的是______。
A.A-B
*
(C-D)
B.(A-B)
*
C-D
C.(A-B*C)-D
D.(A-B)
*
(C-D)
A
B
C
D
【正确答案】
B
【答案解析】
[解析] 利用栈求表达式的值时,需要设立运算符栈和运算数栈,下面仅举一例。例如,求2×(5-3)+6/2的过程如下表所示。
当前字符
运算符栈
运算数栈
说明
2
2
×
*
2
(
*(
2
5
*(
2 5
-
*(-
2 5
3
*(-
2 5 3
)
2 2
“-”出栈
+
+
4
“*”出栈
6
+
4 6
/
+/
4 6
2
+/
4 6 2
+
4 3
“/”出栈
7
“+”出栈
从上述的计算过程中,考生可以自行对A、B、C、D选项进行练习,运算数栈S的大小分别至少为4、2、3、3,只有B选项满足条件。
提交答案
关闭