栈的括号匹配算法程序_栈的括号匹配算法程序

栈的括号匹配算法程序_栈的括号匹配算法程序数据结构题——括号匹配问题括号匹配问题是栈应用的一个经典场景,原理比较简单: 括号匹配原理假设表达式中允许包含两种括号:圆括号和方括号,其嵌入的顺序随意,即([ ] ( ))或[([ ]

数据结构题——括号匹配问题   括号匹配问题是栈应用的一个经典场景,原理比较简单: 括号匹配原理   假设表达式中允许包含两种括号:圆括号和方括号,其嵌入的顺序随意,即([ ] ( ))或[([ ] [ ])]等为正确的格式,[(])或([())或(())]均为不正确的格式。检验括号是否匹配的方法可用“期待的急迫程度”这个概念来描述。   
在这里插入图片描述   由此,在算法中设置一个栈,每读入一个括号,若是右括号,则或者使置于栈顶的最击破的期待得以消解,或者是不合法的情况;若是左括号,则作为一个新的更急迫的期待压入栈中,自然使原有的在栈中的所有未消解的期待的急迫性都降了一级。另外,在算法的开始和结束时,栈都应该是空的。 具体实现   假设一个算术表达式中包含圆括号、方括号两种类型的括号,试编写一个判断表达式中括号是否匹配的程序,匹配返回Match succeed!,否则返回Match false!。   例   [1+2*(3+4*(5+6))]括号匹配   (1+2)(1+2[(1+2)+3)括号不匹配   输入:   包含圆括号、方括号两种类型括号的算术表达式   输出:   匹配输出Match succeed!   不匹配输出 Match false!   例   输入[1+2* (3+4*(5+6))]   输出Match succeed!   
在这里插入图片描述   在编写的过程中,遇到的问题:   1.c语言中没有引用参数的概念,所以我在 InitStack(SqStack & s)函数中这样写参数表列是有问题的,最后是通过将.c文件保存成.cpp文件,才允许这么实现。   2.如果写成InitStack(SqStack s),且保存成.c文件,那么在InitStack()函数中对s的操作将不会生效。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/45773.html

(0)
上一篇 2024年 9月 5日 下午2:32
下一篇 2024年 9月 5日 下午2:39

相关推荐

关注微信