循环双端对列

deque 在python里的collections模块里面

可以查看官方文档:

https://docs.python.org/3.6/library/collections.html#collections.deque

常用的方法有:

append(x)             #O(1)

appendleft(x)        #O(1)

pop()                     #O(1)

popleft()                #O(1)


回顾之前循环双端链表

平均时间复杂度:

循环双端链表操作平均时间复杂度
cdll.append(value)O(1)
cdll.appendleft(value)O(1)
cdll.remove(node),注意这里参数是 nodeO(1)
cdll.headnode()O(1)
cdll.tailnode()O(1)


所以用cdll就可以实现deque,只要继承cdll的方法就行。

其中,append()和appendleft()在类中都有了,只需要实现pop()和popleft()操作就可以了,

借助cdll的remove()方法就可以实现。