单选题
利用栈求表达式的值时,设立运算数栈OPEN。假设OPEN只有两个存储单元,则在下列表达式中,不会发生溢出的是______。
【正确答案】
B
【答案解析】[解析] 考查栈在表达式求值中的应用。栈通常可以解决括号匹配、表示式求值、迷宫问题、递归等应用。利用栈求表达式的值时,可以分别设立运算符栈和运算数栈,但其原理不变。选项B中A入栈,B入栈,计算得R1,C入栈,计算得R2,D入栈,计算得R3,由此得运算数栈深为2。ACD依次计算得栈深为4、3、3。
技巧:根据算符优先级,统计已依次进栈,但还没有参与计算的运算符的个数。以选项C为例,‘(’、‘A’、‘-’入栈时,‘(’和‘-’还没有参与运算,此时运算符栈大小为2,‘B’、‘*’入栈时运算符大小为3,‘C’入栈时‘B*C’运算,此时运算符栈大小为2,依次类推。