数据结构必会|栈的思想及实现(Python)
原创
©著作权归作者所有:来自51CTO博客作者二哥不像程序员的原创作品,请联系作者获取转载授权,否则将追究法律责任
栈
1. 栈是什么
首先举个生活中的例子:盛菜时使用的盘子叠在一起摆放时就是一种栈的结构,使用盘子的时候只能拿走最上面的那个,摆放时会把先洗好的那个放在最下面,这也就构成一种先放后拿的思想,也就是我们栈的思想。
栈是一个有序的集合,它的添加和移除操作总发生在“顶端”(另一端称为底端),栈中的元素离底端越近,代表其在栈中的时间越长,栈的排序原则被称作LIFO(last-in first-out),具体的实现方式如下图所示:
2. 栈的实现
在使用Python实现栈的时候,可以借助Python中列表(list)的特性来实现,列表中的append()函数可以实现在末尾追加元素(后进操作),pop()函数可以实现推出末尾元素(先出操作),具体的实现方法如下:
# 创建class Stack
class Stack:
# 初始化栈
def __init__(self):
self.items = []
# 判断栈是否为空
def isEmpty(self):
return self.items == []
# 入栈
def push(self, item):
self.items.append(item)
# 出栈
def pop(self):
self.items.pop()
# 返回栈顶的元素
def peek(self):
return self.items[len(self.items) - 1]
# 返回栈中元素的数目
def size(self):
return len(self.items)
测试结果如下:
# 测试代码
s = Stack()
s.isEmpty()
# 输出
True
# 测试代码
s.push('I')
s.push('like')
s.push('python')
s.pop()
s.peek()
s.size()
# 输出
2