首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
队列——queue的用法(及洛谷B3616)
返回列表
发新帖
队列——queue的用法(及洛谷B3616)
[复制链接]
发表于 2023-2-21 22:29:59
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
队列的概念
在说队列之前,先回忆一下
栈是什么
,我们一般说栈是一个
先进后出
的数据结构,而队列就是
先进先出
的数据结构。
队列是定在表的一端进行插入,表的另一端进行删除。
通常,我们称进数据的一端为队尾,出数据的一端为队首(这边需要注意,经常会记反起码我是这样的),数据元素进队列的过程称为入队,出队列的过程称为出队。
队列
存储
的方式主要分为两种:
1.顺序队列(集中
存储
) 2.链队列(分散
存储
)
两者的区别主要就是顺序表和链表的区别。
队列的用法
和栈一样,队列同样可以使用STL来操作。
队列的头文件是:
1 #include<queue> //当然万能头中也包括此头文件
复制
代码
有以下几种操作方式:
1 queue<int> q; //建立一个队列q
2 q.push(a); //将元素a插入到队列q的末尾
3 q.pop(); //删除q的队首元素
4 q.front(); //查询q的队首元素(这里要注意它和栈略有不同,栈中用的是top函数)
5 q.back(); //查询q的队尾元素
6 q.size(); //查询q的元素个数
7 q.empty(); //查询q是否为空
复制
代码
一定要注意在队列中查询队首元素是front不是top,不然就会被无情报错 本蒟蒻第一次打队列时记错了,结果……
队列的模板
题目
题目描述
请你实现一个队列(queue),支持如下操作:
push(x):向队列中加入一个数 x。
pop():将队首弹出。如果此时队列为空,则不进行弹出操作,并输出 “ERR_CANNOT_POP”。
query():输出队首元素。如果此时队首为空,则输出“ERR_CANNOT_QUERY”。
size():输出此时队列内元素个数。
输入格式
第一行,一个整数n,表示操作的次数。
接下来n行,每行表示一个操作。格式如下:
“1 x”,表示将元素 `x` 加入队列。
“2”,表示将队首弹出队列。
”3”,表示查询队首。
“4”,表示查询队列内元素个数。
输出格式
输出若干行,对于每个操作,按「题目描述」输出结果。
每条输出之间应当用空行隔开。
输入样例 输出样例
13 2
1 2 1
3 2
4 233
1 233 0
3 ERR_CANNOT_POP
2 ERR_CANNOT_QUERY
3 144
2
4
3
2
1 144
3<br>
复制
代码
[code] 1 #include //万能头文件,包含了 2 #define MAXN 100010 3 #define ll long long 4 using namespace std; 5 int n; 6 queue s; 7 int main() 8 { 9 cin>>n;10 for(int i=1;i>a;14 if(a==1)15 {16 int x;17 cin>>x;18 s.push(x);19 }20 if(a==2)21 {22 if(s.empty())23 cout
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
人工智能
数据仓库与分析
运维.售后
网络安全
物联网
分布式数据库
IOS
公有云
卖不甜枣
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表