试将[算法2-1)和[算法2-2]中(1)~(7)处补充完整。 从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件 3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。 (a)字符是括号(b

admin2005-03-15  47

问题 试将[算法2-1)和[算法2-2]中(1)~(7)处补充完整。
从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件 3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。
   (a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空
   (f)栈顶元素表示的是与当前字符匹配的左括号
   (g)栈顶元素表示的是与当前字符匹配的右括号

选项

答案判断条件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。
转载请注明原文地址:https://jikaoti.com/ti/hli7FFFM
0

相关试题推荐
最新回复(0)