双端队列是一种兼具队列和栈的性质的数据结构。其元素可以从两端插入或弹出
操作
- Deque()创建一个空的双端队列
- add_front(item)从队头加入一个item元素
- add_rear(item)从队尾加入一个item元素
- remove_front()从队头删除一个item元素
- remove_rear()从队尾删除一个item元素
- is_empty()判断双端队列是否为空
- size()返回队列的大小
实现
class Deque(object):
"""双端队列"""
def __init__(self):
self.items = []
def is_empty(self):
"""判断队列是否为空"""
return self.items == []
def add_front(self,item):
"""在队头添加元素"""
self.items.insert(0,item)
def add_rear(self,item):
"""在队尾添加元素"""
self.items.append(item)
def remove_front(self,item):
"""从队头删除元素"""
return self.items.pop(0)
def remove_rear(self):
"""从队尾删除元素"""
return self.items.pop()
def size(self):
"""返回队列大小"""
return len(self.items)