
课程设计中括号匹配的检验。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
问题描述:我们假设在表达式中,可以存在两种类型的括号:圆括号和方括号,并且它们的嵌套顺序可以自由组合,例如 CC 或 [([ ] [ ])] 都是有效的格式,而 [( ))或 ((()] 则是无效的。判断括号是否匹配的一种方法是基于“期待的紧迫程度”的概念。具体来说,当计算机接收到第一个括号时,它会预期与其匹配的最后一个括号的出现;然而,如果接收到的却是另一个括号,那么第一个括号将暂时搁置,并开始急切地等待与第二个括号匹配的最后一个括号的出现。类似地,如果只等到了第三个括号,则其期待的紧迫程度会比第二个括号更强,因此第二个括号将被搁置,让位于第三个括号。这种处理过程与栈数据结构的特点非常吻合。因此,我们需要设计一个栈的数据结构。每当读取到一个新的括号时,如果它是左括号类型,就将其作为更高优先级的“期待”压入栈中;如果它是右括号类型,则要么与当前栈顶的左括号匹配成功,要么判定该字符串不合法并输出“此串括号匹配不合法”。在初始状态和最终状态下,栈必须为空。
测试数据:对于输入 #([ ]())# ,程序应输出“匹配”。对于输入 #[( )]# ,程序应输出“此串括号匹配不合法”。# 标记了起始和结束的位置。
全部评论 (0)
还没有任何评论哟~


