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

admin2009-02-15  18

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

选项

答案判断条件1:b 判断条件2:e 判断条件3:f

解析 因为后面有"pop();row<-pop();col<-pop();”,所以空(5)应填col,(6)应填row。又因为判断条件1为真时需要人栈,所以判断条件1应是判断字符是不是左括号,是就人栈,所以判断条件选 b。判断条件2和3是相关联的,当2和3都为真时,要进行出栈操作,因此要判断栈是否为空。由此可以得到待判断条件2和3中,有一个必定是用来判断栈是否为空的。可以用栈顶元素来确定当前括号是否和栈中压人括号是同一类型的。前提是左括号类型已经人栈了,且在栈底,如果(7)压入的是k,即吻合。所以(7)应填k,这样判断括号是否匹配的条件就可以确定了,如果当前ch是右括号且当前栈顶的左括号类型与ch匹配,则匹配成功。应把“栈不空”作为判断条件2,“栈顶元素表示的是与当前字符匹配的左括号”作为判断条件3。这样判断条件2填e,判断条件3填f。
转载请注明原文地址:https://kaotiyun.com/show/KrDZ777K
0

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