资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输入格式
第一行一个数字N。
下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输出格式
若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
样例输入
7
1 19
1 56
2
3
2
3
2
样例输出
19
1
56
0
no
数据规模和约定
1<=N<=50
解题思路:
c++专门提供了队列库函数,只要引入这个库就可以直接使用,只要注意一下queue的具体使用函数就可以,如下所示:
C++队列Queue类成员函数如下:
back()返回最后一个元素
empty()如果队列空则返回真
front()返回第一个元素
pop()删除第一个元素
push()在末尾加入一个元素
size()返回队列中元素的个数
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
代码如下:
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main(){
queue<int> q;
int judge, num, n;
cin >> n;
while(n --){
cin >> judge;
if(judge == 1){
cin >> num;
q.push(num);
}else if(judge == 2){
if(q.empty()){
cout << "no" << endl;
break;
}else{
int temp = q.front();
q.pop();
cout << temp << endl;
}
}else{
cout << q.size() << endl;
}
}
return 0;
}