队列是基本的数据结构之一。
队列特点:先进先出。
头文件:
#include<queue>
队列的有关操作与栈的有关操作类似:
queue<Type>q; //定义栈,Type为数据类型,例如 int,float,char等
q.push(item); //把item放进队列
q.front(); //返回队首元素,但不会删除
q.pop(); //删除队首元素
q.back(); //返回队尾元素
q.size(); //返回元素个数
q.empty(); //检查队列是否为空
题目描述
请你实现一个队列(queue),支持如下操作:
- `push(x)`:向队列中加入一个数 x。
- `pop()`:将队首弹出。如果此时队列为空,则不进行弹出操作,并输出 `ERR_CANNOT_POP`。
- `query()`:输出队首元素。如果此时队列为空,则输出 `ERR_CANNOT_QUERY`。
- `size()`:输出此时队列内元素个数。
输入格式
第一行,一个整数 n,表示操作的次数。
接下来 $n$ 行,每行表示一个操作。格式如下:
- `1 x`,表示将元素 `x` 加入队列。
- `2`,表示将队首弹出队列。
- `3`,表示查询队首。
- `4`,表示查询队列内元素个数。
输出格式
输出若干行,对于每个操作,按「题目描述」输出结果。
每条输出之间应当用空行隔开。
代码如下
#include<bits/stdc++.h>
using namespace std;
#include<queue>
queue<int> q;
int main()
{
int n, m;
cin >> n;
for (int i = 1; i <= n; i++)
{
int op, x;
cin >> op;
if (op == 1)
{
cin >> x;
q.push(x);
}
else if (op == 2)
{
if (q.empty())
cout << "ERR_CANNOT_POP\n";
else q.pop();
}
else if (op == 3)
{
if (q.empty())
cout << "ERR_CANNOT_QUERY\n";
else
cout << q.front() << endl;
}
else if(op==4)
cout << q.size() << endl;
}
return 0;
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/2302_80707071/article/details/138041803