双端队列,可以从任意一端进行队列的入队和出队操作。
from pythonds.basic import Deque
que=Deque()
que.addFront(item)
que.addRear(item)
que.removeFront()
que.removeRear()
que.isEmpty()
que.size()
用列表来实现双端队列。
- 列表表尾执行入队和出队操作,时间复杂度为O(1)
- 列表表头执行入队和出队操作,时间复杂度为O(n)
class Deque: def __init__(self): self.items=[] def addFront(self,item): return self.items.append(item) def addRear(self,item): return self.items.insert(0,item) def removeFront(self): return self.items.pop() def removeRear(self): return self.items.pop(0) def size(self): return len(self.items) def isEmpty(self): return self.items==[]