运维开发网

8. 队列(3)

运维开发网 https://www.qedev.com 2020-02-22 15:38 出处:51CTO 作者:听丶飞鸟说
循环双端对列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)回顾之前xunhuansh

循环双端对列

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()方法就可以实现。

0

上一篇:

:下一篇

精彩评论

暂无评论...
验证码 换一张
取 消