首页 > 其他分享 >Queue(队列)

Queue(队列)

时间:2024-02-04 10:46:35浏览次数:24  
标签:head 队列 队首 元素 Queue int tail

特性

先进先出,允许再表的一端进行删除另一端进行插入运算。

STL方式

  • 头文件
#include<queue>
  • 定义
queue<int > q;//建立一个队列q,其内部元素类型是int;
  • 函数
q,push(a);//将元素a插入到队列q的末尾/
q.pop();//删除队列q的队首元素。
q.front();//查询q的队首元素。
q.back();//查询q的队尾元素。
q.size();//查询q的元素个数。
q.empty();//查询q是否为空

手动队列

int queue[MAXN];//开辟队列所需要的数组空间,MAXN为队列的最大能入队元素的次数
int head=0;//队首指针。
int tail=0;//队尾指针,新元素插入位置。
各函数实现
void push(int x){//进队,需要判断是否溢出
	if(tail>MAXN){
	
	}else{
	queue[tail]=x;tail+=1;
	}
}
void pop(){//弹出队首元素,需要判断是否队列为空。
	if(head==tail){
	
	}else{
	head+=1;
}
int front(){//查询队首元素,需要判断是否队列为空。
	if(head==tail){
	return -1;
	}else{
	return queue[head];
	}
}

}

标签:head,队列,队首,元素,Queue,int,tail
From: https://www.cnblogs.com/sdlypsck/p/18005733

相关文章

  • (10/60)用栈实现队列、用队列实现栈
    用栈实现队列实现思路用两个栈实现。入队用输入栈stIn,出队用输出栈stOut。实现pop()时,要注意pop只删除,不返回值。复杂度分析略注意点stack的pop只能弹出,不返回值;弹出并获取值分成:用top()记录栈顶值、用pop()弹出(删除)栈顶值。class方法调用要用->。代码实现classMyQu......
  • 【Java基础】BlockingQueue及其子类
    ArrayBlockingQueue(数组实现的有界阻塞队列)特点:基于数组的有界阻塞队列,按先进先出(FIFO)原则排序元素。可以选择公平性(即按线程等待的先后顺序访问队列)或非公平性,默认是非公平的。用途:适用于需要固定大小的队列场景。LinkedBlockingQueue(链表实现的阻塞队列)特点:基于链表的可选边界(有......
  • 堆(优先队列)
    堆是一种树形结构,树的根是堆顶,堆顶始终保持为所有元素的最优值。有大根堆和小根堆,大根堆的根节点是最大值,小根堆的根节点是最小值。堆一般用二叉树实现,称为二叉堆。堆的存储方式堆的操作empty返回堆是否为空top直接返回根节点的值,时间复杂度\(O(1)\)push将新元素添加在......
  • kafka系列(一)【消息队列、Kafka的基本概念、Kafka的工作机制、Kafka可满足的需求、Kafk
    (kafka系列一)转自《Kafka并不难学!入门、进阶、商业实战》一、消息队列1.消息队列的来源在高并发的应用场景中,由于来不及同步处理请求,接收到的请求往往会发生阻塞。例如,大量的插入、更新请求同时到达数据库,这会导致行或表被锁住,最后会因为请求堆积过多而触发“连接数过多的......
  • Poj 3414 Pots (BFS+回溯+队列)
    这道题需要输出最后结果的执行过程,可以通过结构体,在结构体中定义一个数组s,s中存储了每一步的执行过程,实现了回溯。并且在运行中可以适当剪枝,减少枚举次数。 #include<iostream>#include<queue>#include<cstring>usingnamespacestd;constintN=110;intaa,bb,cc,vis[N......
  • Poj 3278 Catch That Cow (BFS+队列)
    #include<iostream>#include<queue>#include<cstring>usingnamespacestd;constintN=1e5+10;intn,k,line[N],way;structnode{intloc,step;};queue<node>q;voidBFS(intn,intk){while(!q.empty())q.pop();nodestart,next......
  • 代码随想录算法训练营第十天| 堆栈理论基础 232.用栈实现队列 225. 用队列实现栈
    堆栈理论基础 代码随想录(programmercarl.com)STL中栈往往不被归类为容器,而被归类为containeradapter(容器适配器)。栈的内部结构,栈的底层实现可以是vector,deque,list都是可以的,主要就是数组和链表的底层实现。我们常用的SGISTL,如果没有指定底层实现的话,默认是以deque为缺......
  • 函数sigqueue
    一、函数sigqueuesigqueue函数原型:函数作用:新的发送信号系统调用,主要是针对实时信号提出的支持信号带有参数,与函数sigaction()配合使用intsigqueue(pid_tpid,intsigno,constunionsigvalvalue);分析:第一个参数:指定接收信号的进程id第二个参数:确定即将发送的信号第三个参......
  • js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态
    js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态执行,父子通信在Vue3中,你可以使用以下方法来处理异步事件、线程、队列执行、事件广播、事件总线、事件监听、变量监听、动态执行和父子通信:1.异步处理事件:可以使用async/await或Promise......
  • ArrayBlockingQueue使用
    packageorg.example;importjava.util.ArrayList;importjava.util.List;importjava.util.concurrent.ArrayBlockingQueue;/***用数组实现的阻塞队列*/publicclassArrayBlockingQueueDemo{ArrayBlockingQueuequeue=newArrayBlockingQueue(3);volat......