早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件 3”。注意,若“判断条

题目

从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件 3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。

(a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空

(f)栈顶元素表示的是与当前字符匹配的左括号

(g)栈顶元素表示的是与当前字符匹配的右括号

参考答案
正确答案:判断条件1:(b) 判断条件2:(e) 判断条件3:(f)
判断条件1:(b) 判断条件2:(e) 判断条件3:(f) 解析:因为判断条件1为真时要人栈,所以判断条件1应是判断字符是否是左括号,如果是就入栈。所以判断条件1选b。
判断条件2和3是联系在一起的,当判断条件2和3都为真时,要进行出栈操作,因此要判断栈是否为空。由此可以得出判断条件2和3中,有一个是用来判断栈是否为空的。
备选答案的一些选项给了一些提示,就是用判断栈顶元素,来确定当前括号是否和栈中压人括号是同一类型的。但前提是左括号类型入了栈,而且要在栈顶,如果(7)空压入的是k,就正好吻合了。所以(7)空应填k,判断括号是否匹配的条件也就可以确定了。如果当前ch是右括号且当前栈顶的左括号(只有左括号入了栈)类型与ch匹配,则匹配成功。因为在题目中有提示“若判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。所以应把“栈不空”作为判断条件2,“栈顶元素表示的是与当前字符匹配的左括号”作为判断条件3。即判断条件2填e,判断条件3填f。