姓名:王海桐 学号:21021211072 学院:电子工程学院
# 栈的定义
栈是什么呢?简单来说,就是一个没有盖子的水杯,装水的时候,先进去的水在最底下,而最后放的水在最上面。倒水的时候,在最上面的水先被倒出去,在最下面的水最后呗倒出去。总结来说,就是先入后出或者后入先出。
在Python中,栈的实现如下:
----------------------------------------------------------------------------------------------------
# 将列表上端或者右端作为顶端
class Stack:
# 初始化
def __init__(self):
self.items = []
# 判断是否为空
def isEmpty(self):
return self.items == []
# 压栈
def push(self, item):
self.items.append(item)
# 出栈
def pop(self):
return self.items.pop()
# 返回栈顶元素
def peek(self):
return self.items[len(self.items)-1]
# 栈的大小
def size(self):
return len(self.items)
--------------------------------------------------------------------------------------------
# 栈的应用
## 简单括号匹配
说明:出现括号的时候,都是左括号和右括号成对出现。有一个左括号“(”,必定有一个右括号“)”与之对应。而且,第一个左括号应该匹配最后一个右括号。
----------------当出现次序反转的问题,就应当用“栈”来解决问题-----------------
算法思路:将输入中的字符一个一个地检查,如果是左括号“(”,就压入栈;如果是右括号“)”,栈不空的时候就弹出栈(因为栈里只有左括号),栈空的时候说明这个右括号是多余的,不能匹配。