数据结构习题21295

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

栈与队列练习题

一、单项选择题

1.栈和队列的共同特点是()。

A. 都是先进先出

B. 都是先进后出

C. 只允许在端点处插入和删除元素

D. 没有共同点

2.元素A,B,C,D,依次进顺序栈后,栈顶元素是(),栈底元素是()。

A. A

B. B

C. C

D. D

3.栈操作数据的原则是()。

A. 先进先出

B. 后进先出

C. 后进后出

D. 分顺序

4.经过以下栈运算后,x的值是()。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Gettop(s,x)

A. a

B. b

C. 1

D. 0

5.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是()。

A. ABCD

B. DCBA

C. ACDB

D. DABC

6.已知一个栈的进栈序列是1,2,3,…,n,其输出序列是p1,p2,…pn,若P1等于n,则pi 的值()

A. i

B. n-i

C. n-i+1

D. 不确定

7.设n个元素进栈序列是1,2,…,n,其输出序列是p1,p2,…,pn,若p1=3,则p2的值()。

A. 可能是2

B. 一定是2

C. 可能是1

D.一定是1

8.经过以下队列运算后,队头的值是()

InitQueue(qu);enQueue(qu,a);enQueue(qu,b);enQueue(qu,c);deQueue(qu)

A. a

B. b

C. 1

D. 0

9.经过以下队列运算后,QueueEmpty(q)的值是()

InitQueue(qu);enQueue(qu,a);enQueue(qu,b);deQueue(qu,x);deQueue(qu,y)

A. a

B. b

C. 1

D. 0

10.元素A,B,C,D顺序连续进入队列qu后,队头元素是(),队尾元素是()。

A. A

B. B

C. C

D. D

11.设循环队列中数组的下标是0~N-1,其头尾指针分别为f和r,则其元素个数为()。

A. r-f

B. R-f-1

C. (r-f)%N+1

D. (r-f+N)%N

-精品

12.判断一个循环队列Q(存放元素位置0~QueueSize-1)队满的条件是()。

A. Q.front= =Q.rear

B. Q.front+1= =Q.rear

C. Q.front= =(Q.rear+1)%QueueSize

D. Q.rear = =( Q.front +1)%QueueSize

13.假设用Q[0…M]实现循环队列,Q[f] 、Q[r]分别为队首元素的前一个位置和队尾位置。

若用“(r+1)%(M+1)= =f”作为队满的标志,则()。

A. 可用“f = =r”作为队空的标志

B.可用“f>r”作为队空的标志

C. 可用“(f+1)%(M+1)= =r”作为队空的标志

D. 队列中最多可以有M+1个元素

二、判断题

1.栈底元素是不能删除的元素()

2.顺序栈中元素的大小是有序的。()

3.在n个元素进栈后,他们的出栈顺序和进栈顺序一定正好相反。()

4.若用S[1]~S[m]表示顺序栈的存储空间,则对栈的进栈、出栈操作最多只能进行m次()5.空栈没有栈顶指针。()

6.顺序队列中有多少元素,可根据队首指针的值和队尾指针的值来计算。()

7.若用“队首指针的值和队尾指针的值相等”作为循环顺序队列为空的标志,则在设置一个空队列时,只需给队首指针和队尾指针赋同一个值,不管什么值都可以。()三、简答题

1.利用两个栈S1,S2模拟一个队列时,如何用栈的元算实现队列的入队、出队以及队列的判空运算?请简述算法思想。

-精品

相关文档
最新文档