STL 队列练习
来源:互联网 发布:软件外包公司销售 编辑:程序博客网 时间:2024/05/06 09:59
codevs 3185
题目描述 Description
给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素。 操作解释:1表示入队,2表示出队
输入描述 Input Description
N(操作个数)
N个操作(如果是入队则后面还会有一个入队元素)
具体见样例(输入保证队空时不会出队)
输出描述 Output Description
最终队头元素,若最终队空,输出”impossible!”(不含引号)
样例输入 Sample Input
3
1 2
1 9
2
样例输出 Sample Output
9
#include<iostream>#include<queue>using namespace std;int a[1001];int head=0,tail=0;int y;queue<int>q;int main(){ int t,cz,p; cin>>t; while(t--) { cin>>cz; if(cz==1) { cin>>p; q.push(p); } if(cz==2) { q.pop(); } } if(q.empty()) cout<<"impossible!"<<endl; else cout<<q.front()<<endl; return 0;}
手打版
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[1001]={0},n,t,m,head,tail;bool empty( );int front( );int push(int i){ a[tail]=i; ++tail;}int front(){ ++head;}bool empty(){ if(head>=tail) return 0; else return 1;} int main(){ head=0; tail=0; cin>>n; for(int i=1;i<=n;++i) { cin>>t; if(t==1) { cin>>m; push(m); } else front(); } if(empty()==0) cout<<"impossible!"<<endl; else cout<<a[head]<<endl; return 0;}
codevs 3186
题目描述 Description
(此题与队列练习1相比改了2处:1加强了数据 2不保证队空时不会出队)
给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请
输出最终的队头元素。 操作解释:1表示入队,2表示出队
输入描述 Input Description
N(操作个数)
N个操作(如果是入队则后面还会有一个入队元素)
具体见样例(输入保证队空时不会出队)
输出描述 Output Description
最终队头元素,若最终队空,或队空时有出队操作,输出”impossible!”(不含引号)
样例输入 Sample Input
3
1 2
2
2
样例输出 Sample Output
impossible!
#include<cstdio>#include<queue>using namespace std;queue<int> q;bool f=0;int n,a,b;int main(){ scanf("%d",&n); for (int i=1;i<=n;++i) { scanf("%d",&a); if (a==1) { scanf("%d",&b); q.push(b); } if (a==2) { if (q.empty()) { f=1; } else { q.pop(); } } } if (q.empty()||f) printf("impossible!"); else printf("%d",q.front()); return 0;}
手打版
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[1001]={0},n,t,m,head,tail;bool empty( );int front( );int push(int i){ a[tail]=i; ++tail;}int pop(){ ++head;}bool empty(){ if(head>=tail) return 0; else return 1;} int main(){ head=0; tail=0; cin>>n; for(int i=1;i<=n;++i) { cin>>t; if(t==1) { cin>>m; push(m); if(!empty()) break; } else pop(); } if(empty()==0) cout<<"impossible!"<<endl; else cout<<a[head]<<endl; return 0;}
codevs 3187
题目描述 Description
比起第一题,本题加了另外一个操作,访问队头元素(编号3,保证访问队头元素时或出队时队不为空),现在给出这N此操作,输出结果。
输入描述 Input Description
N
N次操作(1入队 2出队 3访问队头)
输出描述 Output Description
K行(K为输入中询问的个数)每次的结果
样例输入 Sample Input
6
1 7
3
2
1 9
1 7
3
样例输出 Sample Output
7
9
#include<iostream>#include<queue>using namespace std;bool f=0;queue<int>q;int main(){ int n,x,cz; cin>>n; while(n--) { cin>>x; if(x==1) { cin>>cz; q.push(cz); } if(x==2) { q.pop(); } if(x==3) cout<<q.front()<<"\n"; } return 0; }
手打版
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[1000001]={0},n,t,m,head,tail;bool empty( );int front( );int printf(){ if(empty()==0) cout<<"impossible!"<<endl; else cout<<a[head]<<endl;}int push(int i){ a[tail]=i; ++tail;}int pop(){ ++head;}bool empty(){ if(head>=tail) return 0; else return 1;} int main(){ head=0; tail=0; cin>>n; for(int i=1;i<=n;++i) { cin>>t; if(t==1) { cin>>m; push(m); } if(t==2) pop(); if(t==3) printf(); } return 0;}
- STL 队列练习
- STL 优先队列priority_queue 使用练习
- STL练习: queue ——队列
- STL队列
- STL 队列
- STL 队列
- stl 队列
- STL 队列
- STL 队列
- STL队列
- 队列练习
- STL 优先队列-- 树-堆结构练习——合并果子之哈夫曼树
- SDUT-2127- 树-堆结构练习——合并果子之哈夫曼树(STL 优先队列)
- uva 12100 Printer Queue 习题5-7 打印队列 (STL deque练习)
- 树-堆结构练习——合并果子之哈夫曼树 (STL 优先队列)
- STL--优先队列,队列,栈
- STL-栈,队列,优先队列
- C++STL练习
- Oracle学习笔记
- Postgrel 查找模糊字段
- 【Redis缓存机制】2.Redis安装和简单使用
- php通过ssh2扩展控制linux,模拟阿里云web控制台
- mybatis做模糊查询 like
- STL 队列练习
- PHP基础概念
- linux环境变量
- Android Studio 的 Android Monitor / DDMS 中不显示应用的进程(看不到 log)
- poi 解析excel 支持 xls xlsx后缀
- 双面双十一:B端的练兵场,C端的布道者
- Linux启动过程详解
- 跨域资源共享 CORS 详解
- [51nod1640] 天气晴朗的魔法