deque 即双端队列.
(deque, 全名 double-ended queue)是一种具有队列和栈的性质的数据结构. 双端队列中的元素可以从两端弹出, 其限定插入和删除操作在表的两端进行.
双端队列是限定插入和删除操作在表的两端进行的线性表. 这两端分别称做端点 1 和端点 2. 也可像栈一样, 可以用一个铁道转轨网络来比喻双端队列. 在实际使用中, 还可以有输出受限的双端队列 (即一个端点允许插入和删除, 另一个端点只允许插入的双端队列) 和输入受限的双端队列(即一个端点允许插入和删除, 另一个端点只允许删除的双端队列). 而如果限定双端队列从某个端点插入的元素只能从该端点删除, 则该双端队列就蜕变为两个栈底相邻的栈了.
- class Dque(object):
- '''双端队列'''
- def __init__(self):
- self.__list = []
- def add_front(self, item):
- '''往队列中添加一个元素'''
- self.__list.insert(0, item)
- def add_rear(self, item):
- '''往队列中添加一个元素'''
- self.__list.append(item)
- def pop_front(self):
- '''从队列头部删除一个元素'''
- return self.__list.pop(0)
- def pop_rear(self):
- '''从队列头部删除一个元素'''
- return self.__list.pop()
- def is_empty(self):
- '''判断是否一个队列为空'''
- return not self.__list
- def size(self):
- '''返回队列的大小'''
- return len(self.__list)
- if __name__ == "__main__":
- due = Dque()
- due.add_front(1)
- due.add_rear(2)
- print(due.pop_front())
来源: http://www.bubuko.com/infodetail-3475372.html