数据结构与算法MOOC / 第三章 栈与队列 练习题 4:双端队列
2014-11-08 23:08
274 查看
4:双端队列
查看提交
统计
提问
总时间限制: 1000ms 内存限制: 65535kB
描述
定义一个双端队列,进队操作与普通队列一样,从队尾进入。出队操作既可以从队头,也可以从队尾。编程实现这个数据结构。
输入第一行输入一个整数t,代表测试数据的组数。
每组数据的第一行输入一个整数n,表示操作的次数。
接着输入n行,每行对应一个操作,首先输入一个整数type。
当type=1,进队操作,接着输入一个整数x,表示进入队列的元素。
当type=2,出队操作,接着输入一个整数c,c=0代表从队头出队,c=1代表从队尾出队。
n <= 1000输出对于每组测试数据,输出执行完所有的操作后队列中剩余的元素,元素之间用空格隔开,按队头到队尾的顺序输出,占一行。如果队列中已经没有任何的元素,输出NULL。样例输入
251 21 31 42 02 161 11 21 32 02 12 0
样例输出
3
NULL
代码:
#include<stdio.h> #include<string.h> #include<iostream> #include<deque> #include<algorithm> using namespace std; deque<int>q; int main() { int t,n; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%d",&n); while(n--) { int x=0,y=0; scanf("%d%d",&x,&y); if(x==1) { q.push_back(y); } else { if(y==0) q.pop_front(); else q.pop_back(); } } int f=0; if(q.size()==0) printf("NULL"); else { while(q.size()!=0) { if(f==0){ printf("%d",q.front()); q.pop_front(); f=1; } else { printf(" %d",q.front()); q.pop_front(); } } } printf("\n"); } } return 0; }
相关文章推荐
- 数据结构与算法MOOC / 第三章 栈与队列 练习题 2:栈的基本操作
- 数据结构与算法MOOC / 第三章 栈与队列 练习题 8:抓住那头牛
- 第三章 栈和队列练习题
- 第三章:栈与队列算法设计题(2)
- SGU 271 双端队列deque
- STL--双端队列(deque)和链表(list)
- [zz]栈和队列,双端队列
- UVa 210 Concurrency Simulator(双端队列)
- PAT 1127. ZigZagging on a Tree (30) 建树+双端队列 随后再看
- 【HDU5929 2016CCPC东北地区大学生程序设计竞赛 - 重现赛 H】【打表找规律 队列模拟】Basic Data Structure 双端栈下连续1和0做nand的结果
- 双端队列的实现
- Java 集合深入理解(10):Deque 双端队列
- UVa210 双端队列deque
- 栈,队列,双端队列
- 通过双端队列实现三维视频监控中的视频数据调度
- 双端队列与工作密取
- 单调队列(双端队列) poj2823 hdoj3415 hdoj3530
- 《数据结构》严蔚敏版(java解)——第三章 栈和队列01 顺序栈操作
- Java语言程序设计基础篇第三章编程练习题
- 双端队列部分操作(剩下部分待补)