栈是一种只能在一端进行插入和删除操作的数据结构。
前言
python本身已有顺序表(List、Tupple)的实现,所以这里从栈开始
什么是栈
想象在桌子上放一摞书,这就是栈。这堆书的特点就是,最后被堆进去的,永远在最上面。从这堆书中取出一本书,哪本最方便?还是最上面的那本。栈这种数据结构就是如此:后进先出(Lask In First Out),即最后被堆进去的数据,最先被拿出来。
栈的实现
栈可以用顺序表方式实现,也可以用链表方式实现。我大Python的内建数据结构太强大,可以用list直接简单快捷。人生苦短,我用Python。
class Stack(object):
# 初始化栈为空列表
def __init__(self):
self.items =[]
# 判断栈是否为空,返回布尔值
def is_empty(self):
return self.items == []
# 返回栈顶元素
def peek(self):
return self.items[len(self.items)-]
# 返回栈的发小
def size(self):
return len(self.items)
# 把新的元素压入栈
def push(self,item):
self.items.append(item)
# 把栈顶元素丢出去(出栈)
def pop(self,item):
return self.items.pop()