题目
有一个初始为空的队列,我们对这个队列进行 n 次操作,操作共分为 2 种:
1. 1x (将数字 x 放到队列的末尾)
2. 2 (将队列最前面的数字弹出队列)
对于第 2 种操作,你需要把弹出的这个数字输出,如果进行操作 2 时,队列为空,则输出"empty" 。
例如:n=5 ,对应的操作为:
1 123 (操作后队列里面的元素为: 123 )
1 234 (操作后队列里面的元素为: 123,234 )
2 (输出: 234 ,操作后栈里面的元素为: 234 )
2 (输出: 234 ,操作后栈里面的元素为:空)
2 (输出:empty )
对应后面 3 个第 2类操作,你的程序需要输出,
123
234
empty
input
第一行: 1 个数n(1≤n≤10000)
后面 n 行:每行 1 种操作, 1 X 或者 2(0≤x≤10000)。
Output
对应所有操作 2 ,输出被弹出的数或者"empty"
Sample 1
Input | Output |
5 1 123 1 234 2 2 2 | 123 234 empty |
Status
#include<iostream>
#include<queue>
using namespace std;
queue<int> q;
int main(){
int a,x,n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(a==1){
cin>>x;
q.push(x);
}
else if(a==2){
if(q.empty()){
cout<<"empty"<<endl;
}
else{
cout<<q.front()<<endl;
q.pop();
}
}
}
}