数据结构单元4练习参考答案_第1页
数据结构单元4练习参考答案_第2页
数据结构单元4练习参考答案_第3页
数据结构单元4练习参考答案_第4页
数据结构单元4练习参考答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——数据结构单元4练习参考答案

单元测验4

一.判断题(以下各题,正确的请在前面的括号内打√;错误的打╳)

(√)(1)队列是限制在两端进行操作的线性表。

(√)(2)判断顺序队列为空的标准是头指针和尾指针都指向同一个结点。(×)(3)在链队列上做出队操作时,会改变front指针的值。

(√)(4)在循环队列中,若尾指针rear大于头指针front,其元素个数为rear-front。(×)(5)在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是p=h。(√)(6)链队列在一定范围内不会出现队满的状况。(×)(7)在循环链队列中无溢出现象。(×)(8)栈和队列都是顺序存储的线性结构。(×)(9)在队列中允许删除的一端称为队尾。

(×)(10)顺序队和循环队关于队满和队空的判断条件是一样的。

二.填空题

(1)在队列中存取数据应遵循的原则是先进先出。

(2)队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删

除运算的线性表。

(3)在队列中,允许插入的一端称为队尾。

(4)在队列中,允许删除的一端称为队首(或队头)。(5)队列在进行出队操作时,首先要判断队列是否为空。(6)顺序队列在进行入队操作时,首先要判断队列是否为满。(7)顺序队列初始化后,front=rear=-1。(8)解决顺序队列“假溢出〞的方法是采用循环队列。

(9)循环队列的队首指针为front,队尾指针为rear,则队空的条件为front==

rear。

(10)链队列LQ为空时,LQ->front->next=NULL。

(11)设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复

杂度为O(n)。

(12)设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复

杂度为0(1)。

(13)在一个链队列中,若队首指针与队尾指针的值一致,则表示该队列为

空。

79

(14)设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个

空闲元素,队列的最大空间为MAXLEN,则队满标志为:front==(rear+1)%MAXLEN。

(15)在一个链队列中,若队首指针为front,队尾指针为rear,则判断该队列只有

一个结点的条件为:front==rearInQueue(Q,a);InQueue(Q,b);OutQueue(Q,x);ReadFront(Q,x);QEmpty(Q);后的值是0。(20)队列Q经过InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);ReadFront(Q,x)后,x的值是a。

三.选择题

(1)队列是限定在(D)进行操作的线性表。A.中间A.不变的

B.队首B.可变的

C.队尾C.任意的

D.端点D.0D.不限制D.非

(2)队列中的元素个数是(B)。(3)同一队列内各元素的类型(A)。A.必需一致A.不加限制的(B)。A.n-2

B.n-1

C.nD.n+1C.不能固定D.动态变化C.不能连续D.可以不连续

(6)一个循环队列一旦说明,其占用空间的大小(A)。A.已固定B.可以变动(7)循环队列占用的空间(A)。A.必需连续

B.不必连续

B.不能一致C.可以不一致B.推广了的C.加了限制的

(4)队列是一个(C)线性表结构。

(5)当利用大小为n的数组顺序存储一个队列时,该队列的最终一个元素的下标为

80

(8)存放循环队列元素的数组data有10个元素,则data数组的下标范围是(B)。A.0..10B.0..9A.B,C,D,AC.A,B,C,DA.AC.C

C.1..9D.1..10B.A,C,B,DD.C,B,D,A

B.B

D.D

(9)若进队的序列为:A,B,C,D,则出队的序列是(C)。

(10)四个元素按:A,B,C,D顺序连续进队Q,则队尾元素是(D)。

(11)四个元素按:A,B,C,D顺序连续进队Q,执行一次OutQueue(Q)操作后,队头元素是(B)。A.A

B.BC.C

D.D

(12)四个元素按:A,B,C,D顺序连续进队Q,执行四次OutQueue(Q)操作后,再执行QEmpty(Q);后的值是(B)。A.0

B.1C.2

D.3

(13)队列Q,经过以下运算后,x的值是(B)。

InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);OutQueue(Q,x);ReadFront(Q,x);

A.aB.bC.0D.1(14)循环队列SQ队满的条件是(B)。A.SQ->rear==SQ->front

B.(SQ->rear+1)%MAXLEN==SQ->front

D.SQ->front==0

C.SQ->rear==0

(15)设链栈中结点的结构:data为数据域,next为指针域,且top是栈顶指针。若想在链栈的栈顶插入一个由指针s所指的结点,则应执行以下(A)操作。A.s->next=top->next;top->next=s;B.top->next=s;C.s->next=top;top=top->next;

LQ->frontHABCDΛLQ->rearA.AB.BC.CD.D

D.s->next=top;top=s;

(16)带头结点的链队列LQ示意图如下,链队列的队头元素是(A)

81

(17)带头结点的链队列LQ示意图如下,指向链队列的队头指针是(C)

LQ->frontHABCDΛLQ->rearA.LQ->frontB.LQ->rearC.LQ->front->nextD.LQ->rear->next

(18)带头结点的链队列LQ示意图如下,在进行进队运算时指针LQ->front(A)LQ->frontHABCDΛLQ->rearA.始终不改变B.有时改变C.进队时改变D.出队时改变(19)队列Q,经过以下运算后,再执行QEmpty(Q)的值是(C)。

InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b);OutQueue(Q,x);ReadQueue(Q,x);A.a

B.bC.0D.1

(20)若用一个大小为6的数组来实现循环队列,且当前front和rear的值分别为3和0,当从队列中删除一个元素,再参与两个元素后,front和rear的值分别为(B)。A.5和1

B.4和2

C.2和4D.1和5

四.写出程序运行的结果

写出以下程序段的输出结果(队列中的元素类型为char)。

voidmain(){

QueueQ;InitQueue(Q);//初始化队列charx=\InQueue(Q,\InQueue(Q,\InQueue(Q,y);

OutQueue(Q,x);InQueue(Q,x);OutQueue(Q,x);InQueue(Q,\

82

while(!QEmpty(Q))

{

OutQueue(Q,y);printf(y);};printf(x);}

答:输出为“CHAR〞。

五.程序填空

1.假定用一个循环单链表表示一个循环队列,该队列只设一个队尾指针rear,试填空完成向循环队列中插入一个元素为x的结点的函数。

typedefstructqueuenode//定义队列的存储结构{intdata;

structqueuenode*next;}qu;

InQueue(rear,x)//向队列插入元素为x的函数{qu*rear;intx;

{qu*head,*s;s=newqu;s->data=x;

if(rear==NULL)//循环队列为空,则建立一个结点的循环队列{rear=s;rear->next;}else

{head=rear->next;//循环队列非空,则将s插到后面rear->next=s;rear=s;

rear->next=head;}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论