双端队列

Posted galaxyfengfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双端队列相关的知识,希望对你有一定的参考价值。

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

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

我们也可以使用双端队列高效地旋转元素,比如使用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挪到最后面。

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

技术分享图片

 

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



以上是关于双端队列的主要内容,如果未能解决你的问题,请参考以下文章

双端队列

初级--04---链表反转----链表实现栈队列双端队列

Python双端队列追加问题

[程序员代码面试指南]栈和队列-生成窗口最大值数组(双端队列)

码蹄集 - MT2140 - 双端队列

#yyds干货盘点# 双端链表实现队列