顺序栈的应用二:括号匹配的检验

 我来答
黑科技1718
2022-07-27 · TA获得超过5831个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:80.1万
展开全部
假设表达式中允许包含三种括号:圆括号( )、方括号[ ]和花括号{ },其嵌套的顺序随意。
{ ( [ ] ( ) ) }或[ { ( [ ] [ ] ) } ]等为正确的格式,[ ( ] 、( [ ( ) ) 、( ( ) ]均为不正确的格式。
检验括号是否匹配的方法可用“期待的急迫程度”这个概念来描述。
例如考虑下列括号序列:

当计算机接受了第一个括号后,它期待着与其匹配的第八个括号的出现,然而等来的却是第二个括号,此时第一个括号‘[’只能暂时靠边,而迫切等待与第二个括号相匹配的、第七个括号‘)'的出现...这个处理的过程与栈的特点相吻合。

由此,在算法中设置一个栈,每读入一个括号,若是右括号,则使置于栈顶的最急迫的期待得以消解,若是左括号,则作为一个新的更急迫的期待压入栈中,自然使原有的在栈中的所有未消解的期待的急迫性都降了一级。另外,在算法的开始和结束时,栈都应该是空的。

BracketMatching.c利用了前面的C封装的顺序栈对象 用线性表表示的顺序栈
实现了输入任意一串字符串,检测字符串中三种括号是否匹配的功能。

github源码

运行BracketMatching,显示:

示例:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式