给出一系列队列操作,包括
入队,用数字1表示,比如1 2,表示将元素2入队
出队,用数字2表示,表示将队首出队
访问队首,用数字3表示,表示访问队首元素
当某个操作不合法时,请输出impossible!
输入
第一行一个整数n,表示操作次数
接下来n行,每行是一种操作
输出
访问队首元素时请输出队首元素
当某个操作不合法时请输出impossible!
样例输入
6
2
1 2
3
1 3
2
3
样例输出
impossible!
2
3
解析
对队列操作函数的运用
代码
#include<bits/stdc++.h>
using namespace std;
/*队列:先进先出
1.创建一个队列:queue<int>q;
2.入队:q.push(x)
3.出队:q.pop()
4.获取队首元素:q.front()
5.求队内元素个数:q.size()
6.判断队列是否为空:q.empty()*/
int main(){
int n;
cin>>n;
queue<int>q;
for(int i=1;i<=n;i++){
int c;
cin>>c;
if(c==1) {
int x;
cin>>x;
q.push(x);
}
else if(c==2){
if(q.empty()) cout<<"impossible!"<<endl;
else{
q.pop();
}
}
else if(c==3) {
if(q.empty()) cout<<"impossible!"<<endl;
else cout<<q.front()<<endl;
}
}
return 0;
}