【2】6 栈的应用_括号匹配问题

目录

1. 分析问题

2. 算法详细过程

3. 拓展!


 

 

拓展:IDE是什么!

IDE的意思是Integrated Development Environment,集成开发环境。

是用于提供程序开发环境的应用程序,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套,所有具备这一特性的软件或者软件套都可以叫集成开发环境。

比如:
Microsoft Visual Studio(简称VS)是微软公司的开发工具包系列产品。Visual Studio产品包含C++、C#和VB.NET语言。
Eclipse等。

                                                                                                                                      -------------------- 百度知道

 

 

1. 分析问题

(  (  (  (      )  )  )  )        ==>  最后出现的左括号最先被匹配  !!!  (LIFO) 可用栈来实现这个特性!  

每当遇到一个右括号的时候,就要消耗一个左括号,( 对应出栈 ) 。 当遇到左括号就压入栈中,遇到右括号的时候就把位于栈顶的左括号弹出!检查是否配对 。  注:这里的左括号包括 小括号、中(方)括号、大括号的 (  [  {   , 而右括号则包括:  )  ]  }

小结:扫面到左括号就入栈,扫面到右括号就出栈!再检查是否配对!

 

【2】6 栈的应用_括号匹配问题

 

 

【2】6 栈的应用_括号匹配问题

 

【2】6 栈的应用_括号匹配问题

 

 

【2】6 栈的应用_括号匹配问题

 

 

 

 

2. 算法详细过程

 

【2】6 栈的应用_括号匹配问题

 

 

 

【2】6 栈的应用_括号匹配问题

考试的时候是可以直接使用和数据结构相对应的基本操作,建议简要说明接口!

 

 

【2】6 栈的应用_括号匹配问题

 

这里是使用了静态数组来存放数据元素,容易知道顺序栈容量是固定不变的,如果给的括号串很长的话,可能出现栈溢出情况,所以在实际开发的过程中要实现这个代码的话,可以采用链栈的方式来实现。

不过在考试中,用顺序栈这种方式是没有问题的(相对实现更简单)

 

 

 

3. 拓展!

如果在这个代码中并不是直接定义一个栈,而是在函数里面定义了一个数组和top 指针,那么将基本操作去掉,把相应的逻辑对数组和 top 指针直接的判断和操作,怎么处理??