刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

双端队列
定义一个双端队列,进队操作与普通队列一样,从队尾进入。出队操作既可以从队头,也可以从队尾。编程实现这个数据结构。
时间限制:1000
内存限制:65535
输入
第一行输入一个整数t,代表测试数据的组数。 每组数据的第一行输入一个整数n,表示操作的次数。 接着输入n行,每行对应一个操作,首先输入一个整数type。 当type=1,进队操作,接着输入一个整数x,表示进入队列的元素。 当type=2,出队操作,接着输入一个整数c,c=0代表从队头出队,c=1代表从队尾出队。 n <= 1000
输出
对于每组测试数据,输出执行完所有的操作后队列中剩余的元素,元素之间用空格隔开,按队头到队尾的顺序输出,占一行。如果队列中已经没有任何的元素,输出NULL。
样例输入

2
5
1 2
1 3
1 4
2 0
2 1
6
1 1
1 2
1 3
2 0
2 1
2 0

样例输出

3
NULL

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题要求实现一个双端队列,其中进队操作与普通队列一样,从队尾进入。出队操作既可以从队头,也可以从队尾。我们可以使用一个列表来模拟双端队列,其中队尾为列表的末尾,队头为列表的开头。进队操作即向列表末尾添加元素,出队操作从列表开头或末尾删除元素。根据题目要求,我们需要进行如下步骤:1. 定义一个双端队列类,包含进队和出队操作。2. 读入测试数据的组数t,对于每组数据,读入操作次数n。3. 对于每个操作,读入操作类型type和对应的元素x或出队位置c。4. 根据操作类型执行对应的操作,并输出执行完所有的操作后队列中剩余的元素。在Python中,我们可以使用列表的append()方法实现进队操作,使用pop(0)方法实现从队头出队操作,使用pop()方法实现从队尾出队操作。需要注意的是,当队列为空时,从队头或队尾出队操作都应该返回"NULL"。
创作类型:
原创

本文链接:双端队列 定义一个双端队列,进队操作与普通队列一样,从队尾进入。出队操作既可以从队头,也可以从队尾。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share