已知输入序列为abcd,经过输出受限的双向队列后能得到的输出序列有( )。 A、dacb B、cadb C、dbca D、以上答案都不对
很多同学题目没看清楚就开始做题了,这个不是一个普通的队列!!!
经过输出受限的双向队列后能得到的输出序列有
从题目可以知道是双端队列,也就是两端都可以进出,也就是不存有同学想象的先进先出
并且还是输出受限的,注意是输出受限,不是输入受限,如果把输出受限改为输入受限又是另一个题了
输出受限制的双端队列:只允许在一端进行插入和删除,另一端只允许插入的双端队列
缘小遇 回复 快乐小土狗: 我按照你的思路得到的结果也只是cabd,而不是cadb,其他答案也都不对,应该选D吧
缘小遇 回复 缘小遇: 看来下面的评论,好像确实是可以的,没考虑到进后立马出的情况。谢谢解答!
答案应该为D,只能得到cabd
快乐小土狗 回复 17679377259: 见楼上
设右端允许输出,左右两端都允许输人,若在左端输人,相当于队列;在右端输 人,相当于栈。对于选项A(dacb),第一个输出是d,必须abe都输人后再右进d,右出d(相 当于进栈出栈),但下一个要右出a的话,abe都必须左进,队列中是cba,右出a,下一个不可 能右出c,所以选项A是不可能输出序列。对于选项B(cadb),操作顺序是左进a,左进b,右 进c,右出c,右出a,右进d,右出d,右出b,是可能输出序列。对于选项C(dbca),相当于(1) 中的4231.是不可能输出序列。对于洗项D(dbca),与洗项A类似,在右出d后,队列中是 cab,右出b后,下一个右出的不可能是C,选项D是不可能输出序列。
假设左端输出受限,a右进、b左进、c右进右出、a右出、d右进右出、b右出,则输出序列为cadb
路远 回复 iheanu_: 队列先进先出 你这个是啥 进去就出来 明显答案有错
答案错了吧
B (规律)输出首先双端队列:a...
用户登录可进行刷题及查看答案
B (规律)输出首先双端队列:ab...X...d...的输入序列,且现在输出了d,a,b,X没有输出,则输出序列一定不存在X在a,b中间的情况。因为输入的时候a,b相邻,出的时候只能从一边出。排除AC
登录后提交答案