软考- 受限双端队列出队顺序--后面有历年真题

前提:栈和队列 

栈: 先进后出  

队列:先进先出

对于元素1,2,3,4按照顺序进出栈和队列时:

对于入栈,出栈时: 可以进一个元素,出一个元素: 能得到1234出栈顺序,也可以进入几个元素后再开始出栈,比如  进入123后,开始出一个元素3, 再出一个元素2,再进一个元素4,再出栈得到的顺序为 3241 

如果出栈或者出队是4开头的,说明是全部元素进入后,才进行的出栈,出队操作。

如果输出序列不是4开头的,说明某个元素进来后就输出了,并不是全部元素进来后才输出

双端受限出队

 左端完全受限:

这种情况就相当于栈,先进后出

进入1234  出队顺序为 4321

右端只有输出没有输入

对于上面左端相当于是栈,右边是队列,不过右端只能输出。

如果输出 4123时,顺序为,全部元素进入后,先出4而且是从左端的栈出, 剩余的元素 从右端按照队列出。

 对于 4132时,输出第一个元素4,从左端出栈,第二个元素从右端按照先进先出出队列1,剩余23时,均从左端栈出。

第一个出队元素是4,说明是全部元素进入后再去输出的,4输出后,只能1或者3出,因为输入的元素列表中就只剩1,2,3了, 元素2 不能作为第二个输出的元素。

技巧: 对于这种只有一端输入,两端输出时,可以列一个序列 1234 然后,这个序列可以选择是从栈还是从队列中输出,输出后的元素要从序列中进行删除。

右端 只有输入没有输出

 输出 4123时,1,4左端输入,2,3右端输入

 对于 4132这个顺序,4肯定是左边输入的,1如果是左边输入,则2,3则右端输入,得到4123,得不到4132; 同样,1如果是右边输入的,2,3如果是右边输入得到输出序列有123,如果是左边输入的,则得到 4321 。得不到4132序列

对于序列 4213 呢,24从左端输入,13从右端输入,对于输出队列,左端输出队列 + 右端输出队列。 

同理: 4231这个序列是得不到的。 

例子:

 

参考: 

数据结构(18)输入受限的双端队列和输出受限的双端队列详解__李白_的博客-CSDN博客

数据结构复习6:双端队列梳理分析_在双端队列中输出受限,当两端输入时,哪一端先输出_Joy_joye的博客-CSDN博客

练习题: 里面有错误的地方,需要自己甄别一下

数据结构复习(栈和队列)_设依次进入循环队列的元素是1 2 3 4 5,则出队的序列是( )_霏ིྀ宇ིྀ的博客-CSDN博客

关于受限的双端队列输入序列1234所得序列问题的详细解答_Srziii的博客-CSDN博客

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值