8. 队列(3)

循环双端对列

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),注意这里参数是 node O(1)
cdll.headnode() O(1)
cdll.tailnode() O(1)


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

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

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

猜你喜欢

转载自blog.51cto.com/286577399/2150688