##栈(stack)
- 栈:堆栈又名栈(stack),它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
##代码
class Stack:
def __init__(self):#构造函数没有
self.stack = [] #就一个成员列表[]
def push(self,element):
self.stack.append(element)
def pop(self):
return self.stack.pop()
def get_pop(self):
if len(slef.stack) > 0:
return self.stack[-1]
else:
return None
stack = Stack()
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
print(stack.pop())#pop出了最后一个进入的元素
##运行结果
##栈的应用——括号匹配问题
##代码
class Stack:
def __init__(self):#构造函数没有
self.stack = [] #就一个成员列表[]
def push(self,element):
self.stack.append(element)
def pop(self):
return self.stack.pop()
def get_top(self):
if len(slef.stack) > 0:
return self.stack[-1]
else:
return None
def empty(self):
return len(self.stack) == 0
def brach_match(s):
match = {'}':'{',']':'[',')':'('}
stack = Stack()
for ch in s:
if ch in {'[','{','('}:
stack.push(ch)
else:
if stack.empty():
return False
elif stack.get_top == match[ch]:
stack.pop
else:
return False
if stack.empty():
return True
else:
return False
print(brach_match('(){}{{{}}}'))
##运行截屏