2 / 10

输出受限的双端队列是指只有一端可以进行出队操作而从两端都可以进行入队操作的队列,如下图所示。对于输入序列a b c d,经过一个初始为空且输出受限的双端队列后,不能得到的输出序列为(  )。

答案:

答案解析:本题考查队列概念。
先要理解下栈和队列的概念。栈是先进后出,后进先出。队列是先进先出,后进后出。
栈的概念是弹压,就像子弹壳装弹,一粒一粒压进去,但是打出来的时候是从上面打出来的,最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是后进先出;队列是的概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来。
而本题考察的是输出受限的双端队列,其是指只有一端可以进行出队操作而从两端都可以进行入队操作的队列。那么,其可能的输出队列是有很多种的。
在本题中,d已经进入了队列,说明a、b、c都已经进入了队列,因为d最先出队列,说明d肯定从左侧端入列。
当d从左侧入队列,且最先出队列时,那会有以下八种情况:

  1. a、b、c都于左侧进入队列,则出栈序列为:d、c、b、a
  2. a、b于左侧入队列,c位于右侧入队列,则出栈序列为:d、b、a、c
  3. b、c于左侧入队列,a位于右侧入队列,则出栈序列为:d、c、b、a
  4. a、c于左侧入队列,b位于右侧入队列,则出栈序列为:d、c、a、b
  5. a于左侧入队列,b、c位于右侧入队列,则出栈序列为:d、a、b、c
  6. b于左侧入队列,a、c位于右侧入队列,则出栈序列为:d、b、a、c
  7. c于左侧入队列,a、b位于右侧入队列,则出栈序列为:d、c、a、b
  8. a、b、c于右侧入队列,则出栈序列为:d、a、b、c   所以答案选择D。