彻底搞懂双端队列及输入/输出受限的双端队列

双端队列相关概念

双端队列:两端都可以进行入队和出队操作的队列。
栈:限制其一端既不允许插入也不允许删除。
普通队列:限制其一端不允许插入,而限制另一端不允许删除。

在这里插入图片描述
输入限制的双端队列:限制一端只能进行删除操作,而另一端不做限制,也就是说插入(输入)操作受到了限制。
在这里插入图片描述

输出限制的双端队列:限制一端只能进行插入操作,而另一端不做限制,也就是说删除(输出)操作受到了限制。
在这里插入图片描述

双端队列应用

设有一个双端队列,元素进入该队列的顺序是1,2,3,4试分别求出满足下列条件的输出序列。
1.不可能通过输入受限的双端队列输出的序列是?

先使左端既不能输入,也不能输出,即成了一个栈,看此时不可能的输出序列有10种。
在这里插入图片描述
现在把左端的限制重新放开,就可以导出这10种中的一部分,剩下的就是不可导出的部分了。
在这里插入图片描述
下面一第一组1、4、2、3输出序列为例说明:

在这里插入图片描述

注:其中I代表输入操作,OL代表从左端输出,OR代表从右端输出。

显然第一组是可以输出的,其他同理就不在此赘述了。
下面再以第八组4、2、1、3为例说明:
在这里插入图片描述
显然4输出后,无论从左端还是右端都无法输出2,所以这组不可输出。
同理第九组也不可输出。
所以最后不可能通过输入受限的双端队列输出的序列是第八组4、2、1、3和第九组4、2、3、1

2.不可能通过输出受限的双端队列输出的序列是?

与第一问同理,先使左端既不能输入,也不能输出,即成了一个栈,看此时不可能的输出序列有10种。
在这里插入图片描述
下面还是以第一组1、4、2、3输出序列为例说明:
在这里插入图片描述
由于2先于3出队,而且只能从右端输出,所以3只能从左端入队。
显然第一组是可以输出的,其他同理就不在此赘述了。
下面再以第七组4、1、3、2为例说明:

在这里插入图片描述
显然1输出后,本应先输出的3却只能跟在2后边输出,所以这组不可输出。
同理第九组也不可输出。
所以最后不可能通过输出受限的双端队列输出的序列是第七组4、1、3、2和第九组4、2、3、1

3.既不能由输入受限的双端队列得到,也不能由输出受限的双端队列的输出序列?

只有第九组4、2、3、1

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若年封尘

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值