双端队列
一、双端队列的定义
队列限定了一端只能插入,另一端只能删除。而双端队列是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。
二、用python实现双端队列
'''用python 列表实现双端队列'''
class Deque(object):
def __init__(self):
'''采用python中的列表存储数据,初始化空列表'''
self.__list = []
def add_front(self,item):
'''在队列头部添加元素item'''
self.__list.insert(0,item)
def add_rear(self,item):
'''在队列尾部添加元素item'''
self.__list.append(item)
def remove_front(self):
'''在队列头部删除元素,返回删除的值'''
if self.__list:
return self.__list.pop(0)
else:
return None
def remove_rear(self):
'''在队列尾部删除元素,返回删除的值'''
if self.__list:
return self.__list.pop()
else:
return None
def is_empty(self):
'''判断队列是否为空'''
return self.__list == []
def size(self):
'''返回队列的长度,即列表的长度'''
return len(self.__list)
if __name__ == '__main__':
deq = Deque()
deq.add_front(1)
deq.add_front(2)
deq.add_rear(3)
deq.add_rear(4)
print(deq.remove_front())
print(deq.remove_rear())
print(deq.remove_rear())
print(deq.remove_rear())
print(deq.remove_rear())
2
4
3
1
None