栈简介
栈类似于一个箱子,我们向里面放书,我们最先放进去的书是在最底下的,所以我们想要拿出来就只能最后一个拿出来,每次放和取都只能操作最上面那个。
特点:先进后出
名词概念:进栈(放书),退栈(取书)
栈的代码实现
建立一个类,制造这些栈的方法,然后定义一个列表,这个列表就表示栈。
列表第一个就是栈底,最后一个就是栈顶。
结果
栈的应用
括号匹配判断的实例
类似于()[{[]}]这种的括号套括号问题。
有时({)}这种括号形式是错误的,要使程序分辨出他的括号形式是对是错,就可以使用栈的思维。
判断方法:
()[{[]}]为例
1.(进栈
2.第二个)能与栈顶(闭合则(出栈
3.[进栈
4.{进栈
5.[进栈
6.]与栈顶的[闭合[出栈
7.}与栈顶的{闭合{出栈
8.]与栈顶的[闭合出栈
9.没符号了,并且栈为空,则该括号形式正确
如果后面的符号是右半符号]}),但是跟栈顶的符号匹配不起来,或者最后栈还有符号没有闭合,则这是个错误的。
代码:
结果