队列与双端队列的数组实现方法 模板

 队列:

一种线性数据结构,除了可以用stl中的queue,一般还可以用数组q[N]和两个变量h,t存储,分别表示队首和队尾

int q[1000005];//用来模拟队列 
int h, t;//h表示对头,t表示队尾
h = 1, t = 0;//空队列的初始化
h <= t; //判断队列是否为空(非空条件)
int x; //表示需要压入队列的数字
q[++t] = x;//入队(表尾加元素) x 
h++;//出队(表头删元素) 
q[h];//查询队首(表头) 
// 时间复杂度O(1) 

双端队列:

类似普通队列,只是头尾都可以添加和删除元素

int q[1000005];//用来模拟队列 
int h, t;//h表示对头,t表示队尾
h = 1, t = 0;//空队列的初始化
h <= t; //判断队列是否为空(非空条件)
int x; //表示需要压入队列的数字
q[++t] = x;//表尾入队(表尾加元素) x 
t--;//表尾出队(表尾删元素)
q[--h] = x;//表头入队(表头加元素)x 
h++;//表头出队(表头删元素) 
q[h], q[t];//查询头元素,尾元素 
// 时间复杂度O(1) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值