第2章 算法知识、栈、队列--3

时间:2024-09-13 14:26:37 分类:信息学

2.6 队列练习题

1. 已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素

13,则第五个出队列的元素是( )。

A. 5 B. 41 C. 77 D. 13 E. 18

2.设栈 S 和队列 Q 初始状态为空,元素 e 1 ,e 2 ,e 3 ,e 4 ,e 5 ,e 6依次通过栈 S,

一个元素出栈后即进入队列 Q,若出队顺序为 e 2 ,e 4 ,e 3 ,e 6 ,e 5 ,e 1 ,则栈 S的

容量至少应该为______________。

3.设循环队列中数组的下标范围是 1..n,其头尾指针分别为 f r,则其元素个数为:

_____________________。

4. 若用一个大小为 6 的数组来实现循环队列,且当前 rear front 的值分别为 0 3,

当从队列中删除一个元素,再插入两个元素后,rear front 的值分别为多少?(

A. 4和2 B.2和 4 C. 3和0 D.0和 3

 5. 在具有n 个单元的顺序存储的循环队列中,假定front rear 分别为队头指针和队

尾指针,则判断队满的条件为( )

A.rear%n= = front B.(front+1)%n= = rear

C.rear%n -1= = front D.(rear+1)%n= = front

 7.在具有n 个单元的顺序存储的循环队列中,假定front rear 分别为队头指针和队尾

指针,则判断队空的条件为( )

A.rear%n= = front B.front+1= rear

C.rear= = front D.(rear+1)%n= front

参考答案:

1.B 2.3 3.(r-f+n)mod n 4.B 5.D 6.C

2.7 栈与队列作业题

1. 栈中元素的进出原则是(

A.先进先出 B.后进先出 C.栈空则进 D.栈满则出

2.数组 Q[n]用来表示一个循环队列,f 为当前队列头元素的前一位置,r 为队尾元素

的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(

A.r-f; B.(n+f-r)% n; C.n+r-f; D.(n+r-f)% n

3. 设有 4 个数据元素 a1、a2、a3 a4,对他们分别进行栈操作或队操作。在进栈或

进队操作时,按 a1、a2、a3、a4 次序每次进入一个元素。假设栈或队的初始状态都是空。

现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时,第一次出栈

得到的元素是 (1) ,第二次出栈得到的元素是 (2) ;类似地,考虑对这四个

数据元素进行的队操作是进队两次,出队一次,再进队两次,出队一次;这时,第一次出队

得到的元素是 (3) ,第二次出队得到的元素是 (4) 。经操作后,最后在栈中或

队中的元素还有 (5) 个。

(1)( A、a1 B、a2 C、a3 D、a4

(2)( A、a1 B、a2 C、a3 D、a4

(3)( A、a1 B、a2 C、a3 D、a4

(4)( A、a1 B、a2 C、a3 D、a4

(5)( A、1 B、2 C、3 D、0

4. 栈是一种线性表,它的特点是 (1) 。设用一维数组 A[1,…,n]来表示一个栈,

A[n]为栈底,用整型变量 T 指示当前栈顶位置,A[T]为栈顶元素。往栈中推入(PUSH)一个

新元素时,变量 T 的值 (2) ;从栈中弹出(POP)一个元素时,变量 T 的值 (3)

设栈空时,有输入序列 a,b,c,经过 PUSH,POP,PUSH,PUSH,POP 操作后,从栈中弹出的

元素的序列是 (4) ,变量 T 的值是 (5)

供选择的答案:

(1)( A.先进先出 B 后进先出 C 进优于出 D 出优于进 E随机

进出

(2)( )A. 加1 B.减 1 C.不变 D.清 0 E. 加2 F.减 2

(3)( )A. 加1 B.减 1 C.不变 D.清 0 E. 加2 F.减 2

(4)( )A. a,b B. b,c C. c,a D. b,a E. c,b F.

a,c

(5)( )A. n+1 B. n+2 C.n D.n-1 E.n-2

5. 在做进栈运算时,应先判别栈是否 (1) ;在做退栈运算时,应先判别栈是否

(2) 。当栈中元素为 n 个,做进栈运算时发生上溢,则说明该栈的最大容量为 (3)

为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,

应将两栈的 (4) 分别设在这片内存空间的两端,这样,只有当 (5) 时,才产生

上溢。

供选择的答案:

(1)( A、空 B、满 C、上溢 D、下溢

(2)( A、空 B、满 C、上溢 D、下溢

(3)( A、n-1 B、n C、n+1 D、n/2

(4)( A、长度 B、深度 C、栈顶 D、栈底

(5)( )A、两个栈的栈顶同时到达栈空间的中心点

B、其中一个栈的栈顶到达栈空间的中心点

C、两个栈的栈顶在达栈空间的某一位置相遇

D、两个栈均不空,且一个栈的栈顶到达另一个栈的栈底

6.一个栈的入栈序列是1,2,3,4,5,则栈的不可能输出序列是( )。

A.3,5,4,2,1

B.3,2,4,5,1

C.1,2,3,4,5

D.5,4,3,1,2

7.一个队列的入队序列是1,3,5,7,9,则出队的输出序列只能是(

A.9,7,5,3,1

B.1,3,5,7,9

C.1,5,9,3,7

D.9,5,1,7,3

8.设循环队列中数组的下标范围是 1~n,其头尾指针分别为 f r,则其元素个数为

A.r-f B. r-f+1 C. (r-f)% n+1 D. (r-f+n)% n

9.设数组 data[m]作为循环队列 SQ 的存储空间,front 为队头指针,rear 为队尾指针,

则执行入队操作后其尾指针 rear 值为(

A. rear=rear+1 B. rear=(rear-1)%m

C. rear=(rear+1)%(m-1) D. rear=(rear+1)%m

10.递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结

构。

A.队列 B.多维数组 C.栈 D. 线性表

11.若用大小为 6 的数组来实现循环队列,且当前 front rear 的值分别为 0 4。

当从队列中删除两个元素,再加入两个元素后,front rear 的值分别为多少?(

A.2和 6

B.2和 0

C.6和 2

D.2和 2

12. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 。不允许插入和

删除运算的一端称为

13. 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的

线性表。

14. 在具有 n 个单元的循环队列中,队满时共有 个元素。

参考答案:

1.B 2.D

3.B D A B B

4.B B A F D

5.B A B D C

6.D 7.B 8.D 9.D 10.C

11.B 12.栈顶、栈底 13.队列 14.n-1