一、单项选择题
01.栈和队列的主要区别在于().
A.它们的逻辑结构不一样 B.它们的存储结构不一样
C.所包含的元素不一样 D.插入、删除操作的限定不一样
02.队列的“先进先出”特性是指()。
Ⅰ.最后插入队列中的元素总是最后被删除
Ⅱ.当同时进行插入、删除操作时,总是插入操作优先
Ⅲ.每当有删除操作时,总要先做一次插入操作
IV.每次从队列中删除的总是最早插入的元素
A.I B.I和IV C.II和Ⅲ D.IV
03.允许对队列进行的操作有().
A.对队列中的元素排序 B.取出最近进队的元素
C.在队列元素之间插入元素 D.删除队头元素
04.一个队列的入队顺序是1,2,3,4,则出队的输出顺序是()。
A、4,3,2,1 B.1,2,3,4 C.1,4,3,2 D.3,2,4,1
05.循环队列存储在数组A[ 0...n]中,入队时的操作为()。
A. rear=rear+1 B. rear= (rear+1) mod (n-1)
C. rear=(rear+1)mod n D. rear= (rear+1) mod (n+1)
06.已知循环队列的存储空间为数组A[21],front指向队头元素的前一个位置,rear指
向队尾元素,假设当前front和rear的值分别为8和3,则该队列的长度为
A.5 B.6 C. 16 D.17
07.若用数组A[ 0...5]实现循环队列,且当前rear和front的值分别为1和5,当从队列
中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
A.3和4 B.3和0 C.5和0 D.5和1
08.假设用数组Q[MaxSize]实现循环队列,队首指针front 指向队首元素的前一位置,
队尾指针rear指向队尾元素,则判断该队列为空的条件是()。
A.(Q.rear+1)%MazSize==(Q.front+1)%MaxSize
B.(Q.rear+1) %MaxSize==Q.front+1
C.(Q.rear+1)%Maxsize==Q.front
D. Q.rear==Q.front
09.假设循环队列Q[MaxSize]的队头指针为front,队尾指针为rear,队列的最大容量
为MaxSize,此外,该队列再没有其他数据成员,则判断该队列已满条件是()。
A. Q.front==Q.rear B.Q.front+Q.rear>=Maxsize
C. Q.front==(Q.rear+1)%MaxSize D.Q.rear==(Q.front+1)%MaxSize
10.假设用A [O...n]实现循环队列,front、rear分别指向队首元素的前一个位置和队尾元素。若用(rear+1)%(n+1)==front作为队满标志,则()。
A.可用front==rear作为队空标志 B.队列中最多可有n+1个元素
C.可用front>rear作为队空标志 D.可用(front+1)%(n+1)==rear作为队空标志
11.与顺序队列相比,链式队列().
A.优点是队列的长度不受限制
B.优点是进队和出队时间效率更高
C.缺点是不能进行顺序访问
D.缺点是不能根据队首指针和队尾指针计算队列的长度
12.最适合用作队列的链表是().
A.带队首指针和队尾指针的循环单链表
B.带队首指针和队尾指针的非循环单链表
C.只带队首指针的非循环单链表
D.只带队首指针的循环单链表
13.最不适合用作链式队列的链表是().
A.只带队首指针的非循环双链表 B.只带队首指针的循环双链表
C.只带队尾指针的循环双链表 D.只带队尾指针的循环单链表
14.在用单链表实现队列时,队头设在链表的()位置。
A.链头 B.链尾 C.链中 D.以上都可以
15.用链式存储方式的队列进行删除操作时需要()。
A.仅修改头指针 B.仅修改尾指针
C.头尾指针都要修改 D.头尾指针可能都要修改
16.在一个链队列中,假设队头指针为front,队尾指针为rear,x所指向的元素需要入
队,则需要执行的操作为().
A. front=x,front=front->next B. x->next=front->next, front=x
C. rear->next=x,rear=x D. rear->next=x,x->next=NULL,rear=x
17.假设循环单链表表示的队列长度为n,队头固定在链表尾,若只设头指针,则进队操作
的时间复杂度为().
A. O(n) B. O(1) C. o(n^2) D.O(nlog2n)
18.假设输入序列为1,2,3,4,5,利用两个队列进行出入队操作,不可能输出的序列是().
A. 1,2,3,4,5 B. 5,2,3,4,1 C. 1,3,2,4,5 D.4,1,5,2,3
19.若以1,2,3,4作为双端队列的输入序列,则既不能由输入受限的双端队列得到,又不能
由输出受限的双端队列得到的输出序列是()
A.1,2,3,4 B. 4,1,3,2 C.4,2,3,1 D.4,2,1,3
20.【2010统考真题】某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。
若元素a, b, c, d, e依次入此队列后再进行出队操作,则不可能得到的出队序列是()
A. b,a,c, d,e B. d, b, a, c, e C. d,b, c, a, e D. e,c, b, a, d
21.【2011统考真题】已知循环队列存储在一维数组A[ 0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是().
A.0,0 B. 0,n-1 C. n-1,0 D. n-1,n-1
22.【2014统考真题】循环队列放在一维数组A[ 0...M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是().
A.队空: end1==end2; 队满: endl== (end2+1) mod M
B.队空: endl==end2; 队满: end2==(end1+1) mod (M-1)
C.队空: end2==(end1+1) mod M; 队满: end1==(end2+1) mod M
D.队空: endl==(end2+1 )mod M; 队满: end2==(end1+1) mod (M-1)
23.【2018统考真题】现有队列Q与栈S,初始时Q中的元素依次是1,2,3,4,5,6 (1在队头),S为空。若仅允许下列3种操作:①出队并输出出队元素;②出队并将出队元素入栈;③出栈并输出出栈元素,则不能得到的输出序列是()。
A. 1,2,5,6,4,3 B. 2,3,4,5,6,1 C. 3,4,5,6,1,2 D. 6,5,4,3,2,1
24.【2021统考真题】初始为空的队列Q的一端仅能进行入队操作,另外一端既能进行入队
操作又能进行出队操作。若Q的入队序列是1,2,3,4,5,则不能得到的出队序列是()。
A. 5,4,3,1,2 B. 5,3,1,2,4 C. 4,2,1,3,5 D.4,1,3,2,5