双端队列

hrlsm hrlsm     2023-04-12     499

关键词:

deque函数:(双端队列)

deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 怎么中间也可以添加删除?

deque类常用的函数如下。

(1)    构造函数

deque():创建一个空deque

deque(int nSize):创建一个deque,元素个数为nSize

deque(int nSize,const T& t):创建一个deque,元素个数为nSize,且值均为t

deque(const deque &):复制构造函数

(2)    增加函数

void push_front(const T& x):双端队列头部增加一个元素X

void pop_front():双端队列删除头部元素

void push_back(const T& x):双端队列尾部增加一个元素x

void pop_back():双端队列删除尾部元素

iterator insert(iterator it,const T& x):双端队列中某一元素前增加一个元素x

void insert(iterator it,int n,const T& x):双端队列中某一元素前增加n个相同的元素x

void insert(iterator it,const_iterator first,const_iteratorlast):双端队列中某一元素前插入另一个相同类型向量的[forst,last)间的数据

(3)    删除函数

Iterator erase(iterator it):删除双端队列中的某一个元素

Iterator erase(iterator first,iterator last):删除双端队列中[first,last)中的元素

void pop_front():删除双端队列中最前一个元素

void pop_back():删除双端队列中最后一个元素

void clear():清空双端队列

(4)    遍历函数

reference at(int pos):返回pos位置元素的引用

reference front():返回手元素的引用

reference back():返回尾元素的引用

iterator begin():返回向量头指针,指向第一个元素

iterator end():返回指向向量中最后一个元素下一个元素的指针(不包含在向量中)

reverse_iterator rbegin():反向迭代器,指向最后一个元素

reverse_iterator rend():反向迭代器,指向第一个元素的前一个元素

(5)    判断函数

bool empty() const:向量是否为空,若true,则向量中无元素

(6)    大小函数

Int size() const:返回向量中元素的个数

int max_size() const:返回最大可允许的双端对了元素数量值

(7)    其他函数

void swap(deque&):交换两个同类型向量的数据

void assign(int n,const T& x):向量中第n个元素的值设置为x

技术图片
没有要求像vector的内存连续,但也可以随机访问
内容摘自百度

python实现双端队列

Python实现双端队列​双端队列的数据存储结构可以是顺序表,也可以是链表,本篇文章使用Python来分别实现顺序双端队列和链双端队列。一、实现顺序双端队列顺序双端队列是使用顺序表存储数据的双端队列,Python中的列表元组... 查看详情

lydsy2457双端队列(双端队列思想)(代码片段)

问题试求至少用几个双端队列可排序那么我们不妨换过来思考,将数列排好序后,再来找队列个数#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;structmyintx,id;;constintmaxn=200000+10;mya[maxn];intMax[maxn],Min[ 查看详情

实现双端队列

双端队列[double-endedqueue]:描述:1.双端队列是一个限定插入和删除操作的数据结构,具有队列和栈的性质。2.双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。3.双端队列是指允许两端都可以进行入队和... 查看详情

双端队列

1.共享栈  2.栈模拟队列        查看详情

javadeque接口使用方法(栈队列双端队列)

JavaDeque接口使用方法(栈、队列、双端队列)_熊猫先驱的博客-CSDN博客JavaDeque接口使用方法(栈、队列、双端队列)接口的实现类各功能的方法双端队列队列栈其他Deque接口可以实现栈、队列、双端队列的功能ÿ... 查看详情

Python双端队列追加问题

】Python双端队列追加问题【英文标题】:Pythondequeappendissue【发布时间】:2021-12-1312:51:39【问题描述】:我正在尝试将2个项目插入双端队列,每个项目将有2个点。完全双端队列应该包含4个点。不过好像是8分。有人,请帮助我避... 查看详情

641.设计循环双端队列

原题链接https://leetcode.cn/problems/design-circular-deque/题目设计实现双端队列。实现MyCircularDeque类:MyCircularDeque(intk):构造函数,双端队列最大为k。booleaninsertFront 查看详情

双端队列

deque函数:(双端队列)deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素... 查看详情

python:双端队列与列表性能比较

】python:双端队列与列表性能比较【英文标题】:python:dequevslistperformancecomparison【发布时间】:2014-06-2215:07:54【问题描述】:在python文档中,我可以看到deque是一个为从左侧或右侧弹出/添加项目高度优化的特殊集合。例如。文档... 查看详情

java双端队列(代码片段)

查看详情

swift双端队列(代码片段)

查看详情

算法漫游指北(第六篇)双端队列排序算法分类排序算法的稳定性排序算法复杂度

一、双端队列双端队列双端队列(deque,全名double-endedqueue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。 ... 查看详情

如何通过双端队列旋转队列?

】如何通过双端队列旋转队列?【英文标题】:HowcanImakerotatequebydeque?【发布时间】:2021-10-1100:11:55【问题描述】:我的代码(按。列表)n,m=map(int,input().split())x=list(map(int,input().split()))a=[zforzinrange(1,n+1)]print(a)#x=[d,e,f]f_idx=0b_idx=0fori... 查看详情

双端队列广搜(代码片段)

目录双端队列广搜1.算法分析2.例题双端队列广搜1.算法分析双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队... 查看详情

习题3.13双端队列(25分)浙大版《数据结构(第2版)》题目集

双端队列(deque,即double-endedqueue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D... 查看详情

双端队列-deque集vector与list于一身的牺牲内存换功能完善

 看到双端队列(deque)了,书上是这样说的:除了栈和队列外还有一种限定性数据结构是双端队列;双端队列是限定插入和删除操作在表的两端进行的线性表;尽管双端队列看起来似乎比栈和队列更灵活,但实际上在应用程序中... 查看详情

deque双端队列

...行出队和入队操作  LinkedBlockingDeque是一个线程安全的双端队列实现,可以说他是最为复杂的一种队列,在内部实现维护了前端和后端节点,但是其没有实现读写分离,因此同一时间只能有一个线程对其进行操作。在高并发中... 查看详情

bzoj2457[beijing2011]双端队列

2457:[BeiJing2011]双端队列TimeLimit:10Sec  MemoryLimit:128MBSubmit:340  Solved:167[Submit][Status][Discuss]DescriptionSherry现在碰到了一个棘手的问题,有N个整数需要排序。Sherry手头能用的工具就是若干个双端队列。她需要依次处理这N... 查看详情