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

admin2013-12-31  41

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

选项 A、A-B*(C-D)
B、(A-B)*C-D
C、(A-B*C)-D
D、(A-B)*(C-D)

答案B

解析 利用栈求表达式的值时,将中缀表达式转换成后缀表达式以及进行后缀表达式求值这两步操作可以一起进行,需要设立运算符栈OPTR和运算数栈oPND两个栈。例如求选项A的表达式A—B*(C—D)的过程如表6—5所列:

按照上述过程可知,选项A求值时,运算数栈OPND的大小至少为4。
例如求选项B的表达式(A—B)*C—D的过程如表6—6所列:

    按照上述过程可知,选项B求值时,运算数栈OPND的大小至少为2。
    类似地,选项C、D求值时,运算数栈OPND的大小分别至少为3、3。因此本题答案为B。
转载请注明原文地址:https://kaotiyun.com/show/bvxi777K
0

最新回复(0)