利用栈求表达式的值时,设立运算数栈OPEN。假设OPEN只有两个存储单元,则在下列表达式中,不会发生溢出的是( )。

admin2018-07-17  24

问题 利用栈求表达式的值时,设立运算数栈OPEN。假设OPEN只有两个存储单元,则在下列表达式中,不会发生溢出的是(    )。

选项 A、A—B*(C—D)
B、(A—B)*C—D
C、(A—B*C)一D
D、(A—B)*(C—D)

答案B

解析 考查栈在表达式求值中的应用。栈通常可以解决括号匹配、表示式求值、迷宫问题、递归等应用。利用栈求表达式的值时,可以分别设立运算符栈和运算数栈,但其原理不变。选项B中A入栈,B入栈,计算得R1,C入栈,计算得R2,D入栈,计算得R3,由此得运算数栈深为2。ACD依次计算得栈深为4、3、3。
    技巧:根据算符优先级,统计已依次进栈,但还没有参与计算的运算符的个数。以选项C为例,‘(’、‘A’、‘一’入栈时,‘(’和‘一’还没有参与运算,此时运算符栈大小为2,‘B’、‘*’入栈时运算符大小为3,‘C’入栈时‘B*C’运算,此时运算符栈大小为2,依次类推。
转载请注明原文地址:https://jikaoti.com/ti/9lfjFFFM
0

最新回复(0)