【2】6 栈的应用_括号匹配问题
目录
拓展:IDE是什么!
IDE的意思是Integrated Development Environment,集成开发环境。
是用于提供程序开发环境的应用程序,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套,所有具备这一特性的软件或者软件套都可以叫集成开发环境。
比如:
Microsoft Visual Studio(简称VS)是微软公司的开发工具包系列产品。Visual Studio产品包含C++、C#和VB.NET语言。
Eclipse等。
-------------------- 百度知道
1. 分析问题
( ( ( ( ) ) ) ) ==> 最后出现的左括号最先被匹配 !!! (LIFO) 可用栈来实现这个特性!
每当遇到一个右括号的时候,就要消耗一个左括号,( 对应出栈 ) 。 当遇到左括号就压入栈中,遇到右括号的时候就把位于栈顶的左括号弹出!检查是否配对 。 注:这里的左括号包括 小括号、中(方)括号、大括号的 ( [ { , 而右括号则包括: ) ] } 。
小结:扫面到左括号就入栈,扫面到右括号就出栈!再检查是否配对!
2. 算法详细过程
考试的时候是可以直接使用和数据结构相对应的基本操作,建议简要说明接口!
这里是使用了静态数组来存放数据元素,容易知道顺序栈容量是固定不变的,如果给的括号串很长的话,可能出现栈溢出情况,所以在实际开发的过程中要实现这个代码的话,可以采用链栈的方式来实现。
不过在考试中,用顺序栈这种方式是没有问题的(相对实现更简单)
3. 拓展!
如果在这个代码中并不是直接定义一个栈,而是在函数里面定义了一个数组和top 指针,那么将基本操作去掉,把相应的逻辑对数组和 top 指针直接的判断和操作,怎么处理??