本文采用python作为编程语言
什么是栈:栈是一种线性数据结构,遵循Last in First out(后进先出)原则。
栈的代码实现(以-1为栈顶):
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[-1]
def size(self):
return len(self.items)
栈的运用:
1.简单的括号匹配:()这是一对正确的圆括号,(()))这是一对不正确的圆括号,如何利用算法实现判断这对括号是否正确。
思路:每一个右括号必定有一个左括号相对应,利用栈的后进先出可以完美的解决这个问题,扫描案例时,遇到左括号就压入栈,遇到右括号就将栈内左括号删除,扫描完成后栈内为空则返回True,栈内还存在左括号或扫描过程遇到右括号时栈内为空则返回False