算法提高 队列操作
时间限制:1.0s 内存限制:256.0MB
问题描述
队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输入格式
第一行一个数字N。
下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输出格式
若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
样例输入
7
1 19
1 56
2
3
2
3
2
1 19
1 56
2
3
2
3
2
样例输出
19
1
56
0
no
1
56
0
no
数据规模和约定
1<=N<=50
STL函数使用:
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int main()
{
int t;
cin>>t;
queue<int >q;
while(t--)
{
int order,e;
cin>>order;
if(order==1){
cin>>e;
q.push(e);
}
else if(order==2)
{
if(!q.empty()){
int s=q.front();
q.pop();
cout<<s<<endl;
}
else{
cout<<"no"<<endl;
break;
}
}
else if(order==3)
{
int cnt=q.size();
cout<<cnt<<endl;
}
}
return 0;
}