双端队列

我们前面讲了集合,堆,今天要讲的是双端队列。这三个的大致表现形式都差不多,所以我们把这三个连在一起学习。

双端队列的作用主要是支持队首,也就是左端高效的附加和弹出元素,注意下,列表是没有这个功能的喔~

我们也可以使用双端队列高效地旋转元素,比如使用ratate。

我们来看一段代码,你大概就能够明白我的意思了:

from collections import deque
q = deque(range(5))
q.append(5)
q.appendleft(6)
q
deque([6,0,1,2,3,4,5])
q.pop()
#按回车,得到的结果是:5 q.popleft() #按回车,得到的结果是:6 q.rotate(3) q #按回车,得到的结果是:deque([2,3,4,0,1]) q,rotate(-1) q #按回车,得到的结果是:([3,4,0,1,2])

其他的代码我就不解释了,相信你是能够看得懂的,我就直接是一下rotate这个函数方法,你看函数内的值是3的时候,正数,我们最后的三个数给挪到最前面来,也就是把2,3,4挪到最前面,注意一下,5和6,刚才已经用pop删除掉了。接着看-1,负数,就把最前面的2挪到最后面。

好的,今天的内容就讲到这里啦~

 

(文章图片若有侵权,请联系作者删除)

posted @ 2018-07-06 22:42  木木烽  阅读(1147)  评论(0编辑  收藏  举报