算法提高 队列操作
问题描述
队列操作题。根据输入的操作命令,操作队列(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
1 #include <iostream> 2 #include <algorithm> 3 #include <cstdio> 4 #include <cmath> 5 #include <stack> 6 #include <queue> 7 using namespace std; 8 int main() 9 { 10 int n; 11 cin>>n; 12 queue<int> q; 13 int x,y; 14 while(n--){ 15 cin>>x; 16 if(x==1){ 17 cin>>y; 18 q.push(y); 19 }else if(x==2){ 20 if(q.size()){ 21 cout<<q.front()<<endl; 22 q.pop(); 23 }else{ 24 cout<<"no"<<endl; 25 return 0;//quit 26 } 27 28 }else if(x==3){ 29 cout<<q.size()<<endl; 30 } 31 } 32 return 0; 33 }

浙公网安备 33010602011771号