#CS207. 栈和队列

栈和队列

第二章 程序设计基本知识

第7节 栈和队列

1.【NOIP2013】 【NOIP2018】下图中所使用的数据结构是( )。

image

{{ select(1) }}

  • 哈希表
  • 队列
  • 二叉树

2.【NOIP2008】设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,f,e,c,a,则栈S的容量至少应该是()。

{{ select(2) }}

  • 6
  • 5
  • 4
  • 3

3.【NOIP2009】有六个元素FEDCBA从左至右依次顺序进栈,在进栈过程中会有元素被弹 出栈。问下列哪一个不可能是合法的出栈序列?

{{ select(3) }}

  • EDCFAB
  • DECABF
  • CDFEBA
  • BCDAEF

4.【NOIP2010】元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第一 个出栈的是R3,那么第5个出栈的不可能是( )。

{{ select(4) }}

  • R1
  • R2
  • R4
  • R5

5.【NOIP2012】如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c(如右图所示),另有元素d已经出栈,则可能的入栈顺序是( )。

image

{{ select(5) }}

  • a,d,c,b
  • b,a,c,d
  • a,c,b,d
  • d,a,b,c

6.【NOIP2015】今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为( )。

{{ select(6) }}

  • f
  • c
  • a
  • b

7.【NOIP2017】表达式a*(b+c)*d的后缀形式是( )。

{{ select(7) }}

  • a b c d*+*
  • a b c+*d *
  • a*b c+*d
  • b+c*a*d

8.【NOIP2017】对于入栈顺序为a,b,c,d,e,f,g的序列,下列()不可能是合法的出栈序列。

{{ select(8) }}

  • a,b,c,d,e,f,g
  • a,d,c,b,e,g,f
  • a,d,b,c,g,f,e
  • g,f,e,d,c,b,a

9.【NOIP2011】广度优先搜索时,需要用到的数据结构是( )。

{{ select(9) }}

  • 链表
  • 队列
  • 散列表

10.【NOIP2017】 向一个栈顶指针为hs的链式栈中插入一个指针s 指向的结点时,应执行()。

{{ select(10) }}

  • hs->next =S:
  • S->next =hs;hs =s;
  • s->next =hs->next;hs->next =s;
  • s->next =hs;hs =hs->next;

11.【NOIP2012】( )是一种先进先出的线性表。

{{ select(11) }}

  • 队列
  • 哈希表(散列表)
  • 二叉树

不定项选择题

1.【NOIP2010】元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第1个出栈的是R3,那么第5个出栈的可能是( )。

{{ multiselect(12) }}

  • R1
  • R2
  • R4
  • R5

2.【NOIP2012】如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c(如右图所示),另有元素d已经出栈,则可能的入栈顺序有( )。

image

{{ multiselect(13) }}

  • a,b,c,d
  • B.b,a,c,d
  • a,c,b,d
  • d,a,b,c

3.【NOIP2017】对于入栈顺序为a,b,c,d,e,f,g的序列,下列( )不可能是合法的出栈序列。

{{ multiselect(14) }}

  • a,b,c,d,e,f,g
  • g,f,e,d,c,b,a
  • a,d,b,c,g,f,e
  • a,d,c,b,e,g,f