2022年《数据结构(本)》形考任务1-4(包括实践活动3)_第1页
2022年《数据结构(本)》形考任务1-4(包括实践活动3)_第2页
2022年《数据结构(本)》形考任务1-4(包括实践活动3)_第3页
2022年《数据结构(本)》形考任务1-4(包括实践活动3)_第4页
2022年《数据结构(本)》形考任务1-4(包括实践活动3)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

2022年国家开放大学数据结构(本)形考任务1-4(包括实践活动3)

形考1

答案在题目后面,请往下拉!

”题目1:把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()0

:逻辑结构

;算法的具体实现

;给相关变量分配存储单元

;物理结构"

"题目2:下列说法中,不正确的是()。

:数据元素是数据的基本单位

;数据项可由若干个数据元素构成

;数据项是数据中不可分割的最小可标识单位

;数据可有若干个数据元素构成"

"题目3:一个存储结点存储一个()。

:数据类型

;数据元素

;数据结构

;数据项"

"题目4:数据结构中,与所使用的计算机无关的是数据的()。

:物理结构

;逻辑结构

;存储结构

;物理和存储结构"

"题目5:在线性表的顺序结构中,以下说法正确的是()。

:数据元素是不能随机访问的

;逻辑上相邻的元素在物理位置上也相邻

;进行数据元素的插入、删除效率较高

;逻辑上相邻的元素在物理位置上不一定相邻"

"题目6:对链表,以下叙述中正确的是()。

:插入删除元素的操作一定要要移动结点

;不能随机访问任一结点

;可以通过下标对链表进行直接访问

;结点占用的存储空间是连续的"

"题目7:下列的叙述中,不属于算法特性的是()。

:输入性

;可读性

;可行性

;有穷性"

"题目8:算法的时间复杂度与()有关。

:数据结构

;计算机的操作系统

;所使用的计算机

1

;算法本身”

”题目9:设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素

作为新表的第i个元素),插入一个元素,则移动元素个数为()。

:n-i+1

;n-i-1

;i

;n-i*fi

”题目10:设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为

()O

:n-i-1

;n-i

;i

;n-i+1"

"题目11:在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点

是p所指结点的直接后继,现栗删除q所指结点,可用语句()。

:p->next=q->next

;q->;next=NULL

;p->next=q

;p=q->next"

"题目12:在一个单链表中p所指结点之后插入一个s所指的结点时,可执行

()O

:s->next=p-Sgt;next;p->next=s;

;p->next=s->;next;

;p->next=s;s->next=p->next

;p=s-figt;next"

"题目13:非空的单向循环链表的尾结点满足()(设头指针为head,指针

p指向尾结点)。

:p==head

;p->;next-NULL

;p->next-head

;p==NULL"

"题目14:链表不具有的特点是()。

:插入删除不需要移动元素

;不必事先估计存储空间

;逻辑上相邻的元素在物理位置上不一定相邻

;可随机访问任一元素"

"题目15:带头结点的链表为空的判断条件是()(设头指针为head)o

:head->next-head

;head->;next-NULL

;head!=NULL

;head==NULL"

"题目16:在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始

从后到前依次移动了15个元素。则原顺序表的长度为()。

:19

2

;21

;25

;20"

"题目17:有关线性表的正确说法是()。

:除了一■个和最后一■个元素外,其余元素都有一■个且仅有一■个直接前驱和一■个直

接后继

;每个元素都有一个直接前驱和一个直接后继

;表中的元素必须按由小到大或由大到下排序

;线性表至少栗求一个元素"

"题目18:向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序

不变,平均要移动()个元素。

:63

;8

;7

;63.5"

"题目19:一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第

6个元素的地址是()。

:98

;100

;106

;102"

"题目20:在一个不带头结点的单循环链表中,p、q分别指向表中第一个结

点和尾结点,现栗删除第一个结点,且p、q仍然分别指向新表中第一个结点和

尾结点。可用的语句是p=p->;next;和()o

:q=p

;q->next=p

;p=q->;next

;p->next=q"

题目21:数据元素可以有一个或多个数据项组成。

题目22:数据元素之间的抽象关系称为物理结构。

题目23:数据的逻辑结构在计算机中的表示称为逻辑结构。

题目24:数据的逻楫结构是与存储该结构的计算机相关的。

题目25:数据结构中,元素之间存在多对多的关系称为树状结构。

题目26:通常可以把一本含有不同章节的书的目录结构抽象成线性结构。

题目27:通常可以把某城市中各公交站点间的线路图抽象成树型结构。

题目28:设有一个不带头结点的单向循环链表,结点的指针域为next,指

针p指向尾结点,现要使p指向第一个结点,可用语句p=p->next;。

题目29:设有一个单向链表,结点的指针域为next,头指针为head,p指

向尾结点,为了使该单向链表改为单向循环链表,可用语句p->;next=head。

题目30:设有一个单向循环链表,结点的指针域为next,头指针为head,

指针p指向表中某结点,若逻辑表达式p->next==head;的结果为真,则p所

指结点为尾结点。

题目31:要在一个单向链表中p所指向的结点之后插入一个s所指向的新

结点,若链表中结点的指针域为next,可执行p->next=s;s->next=

3

p->;next;的操作。

题目32:要在一个单向链表中删除p所指向的结点,已知q指向p所指结

点的直接前驱结点,若链表中结点的指针域为next,则可执行q->;next=

p->next;

题目33:要在一个带头结点的单向循环链表中删除头结点,得到一个新的

不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针

为p,贝[可执行head=head->;next;p->;next=head;。

题目34:设有一个单向循环链表,头指针为head,链表中结点的指针域为

next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环

链表,可执行操作p->next=head;。

"题目35:设线性表以不带头结点的单向链表存储,链表头指针为head,以

下程序的功能是输出链表中各结点中的数据域data,完成程序中空格部分。

#defineNULL0

voidmain()

{NODE*head,*p;

p=head;/*p为工作指针*/

do

{printf("%d\n",[[1]];

[⑵];

}while[[3]];

}

;[[1]]->{p->data/p=p->next/p!=NULL}"

"题目36:设有一个头指针为head的不带头结点单向链表,p、q是指向链

表中结点类型的指针变量,p指向链表中结点a,(设链表中没有结点的数据域

与结点a的数据域相同),写出相关语句

⑴使该单向链表成为单向循环链表

⑵插入结点s,使它成为a结点的直接前驱

q=p;x=p->;data;

while[[3]])q=q->next;

q->next=head;

q=p;p=p->;next;

while(p->data!=x)

{q=P;

[⑴]

)

s->next=p;

[[2]]

;[[1]]->{p=p->next/q->next=s/q->next!=NULL}"

答案

标准答案1:物理结构

标准答案2:数据项可由若干个数据元素构成

标准答案3:数据元素

4

标准答案4逻辑结构

标准答案5逻辑上相邻的元素在物理位置上也相邻

标准答案6不能随机访问任一结点

标准答案7可读性

标准答案8算法本身

标准答案9n-i+1

标准答案10:n-i

标准答案11:p->next=q->next

标准答案12:s->next=p->next;p->next=s;

标准答案13:p->next-head

标准答案14:可随机访问任一元素

标准答案15:head->next==NULL

标准答案16:20

标准答案17:除了一个和最后一个元素外,其余元素都有一个且仅有一个直接

前驱和一个直接后继

标准答案1863.5

标准答案19100

标准答案20q->next=p

标准答案21对

标准答案22错

标准答案23错

标准答案24错

标准答案25错

标准答案26错

标准答案27错

标准答案28对

标准答案29对

标准答案30对

标准答案31错

标准答案32对

标准答案33对

标准答案34对

标准答案35{p->data}{p=p->next}{p!=NULL}

标准答案36{q->next!=NULL}{p=p->next}{q->next=s}

形考2

"题目1:若让元素1,2,3依次进栈,则出栈顺序不可能为()。

:3,2,1

;3,1,2

;1,3,2

;2,1,3"

"题目2:一个队列的入队序列是1,2,3,4O则队列的输出序列是()。

:1,2,3,4

5

;1,4,3,2

;4,3,2,1

;3,2,4,1"

"题目3:向顺序栈中压入新元素时,应当()。

:先移动栈顶指针,再存入元素

;先后次序无关紧要

;先存入元素,再移动栈顶指针

;同时进行"

"题目4:在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应

执行()。

:p->next=top->next;top->next=p;

;p->next=top;top=p;

;top-figtjnext=p;

;p->next=top->next;top=top->next;"

”题目5:在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点

的值,则执行()。

:x=top;top=top->next;

;x=top->data;

;x=top->data;top=top->next;

;top=top->next;x=top->data;"

”题目6:判断一个顺序队列(最多元素为m)为空的条件是()。

:rear==m-1

;front-rear+1

;rear=m

;front~rear"

”题目7:判断一个循环队列为满的条件是()。

:front-rear+1

;rear=MaxSize

;(rear+1)%MaxSize二二front

;rear%MaxSize==front"

”题目8:判断栈满(元素个数最多n个)的条件是()。

:top=二n-1

;top!二0

;top二7

;top-0"

”题目9:设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的

方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),

则矩阵元素a6,2在一维数组B中的下标是()。

:21

;17

;23

;28"

”题目10:在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印

数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取

6

出数据打印,该缓冲区应该是一个()结构。

:线性表

;队列

;数组

;堆栈"

"题目11:一个递归算法必须包括()。

:迭代部分

;终止条件和迭代部分

;递归部分

;终止条件和递归部分"

"题目12:在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点

的运算为()。

:r=r->next;

;f=f->next;

;f=r->next;

;r=f->next;"

"题目13:在一个链队中,假设千和r分别为队头和队尾指针,则插入s所指结

点的运算为()。

:f->next=s;f=s;

;r->next=s;r=s;

;s->next=f;f=s;

;s->next=r;r=s;"

"题目14:数组a经初始化chara[]="EngIish";a[7]中存放的是()。

:字符串的结束符

;变量h

;"h"

;字符h"

"题目15:设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是

()。

:Bed

;Abe

;BCd

;ABC"

”题目16:字符串a1="AEIJING",a2="AEI",a3="AEFANG",a4="AEFI"中最大

的是()。

:a2

;a1

;a4

;a3"

”题目17:两个字符串相等的条件是()。

:两串的长度相等,并且两串包含的字符相同

;两串的长度相等,并且对应位置上的字符相同

;两串包含的字符相同

;两串的长度相等"

7

"题目18:一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素

的存储地址为100,则该数组的首地址是()。

:28

;64

;90

;70"

"题目19:一个非空广义表的表头()。

:只能是原子

;不可能是原子

;可以是子表或原子

;只能是子表"

"题目20:对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩

阵A,其相应的三元组表共有6个元素,矩阵A共有()个零元素。

:10

;72

;74

;8"

"题目21:对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩

阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素

是()。

:(10,8,7)

;(7,8,10)

;(10,8,6)

;(7,10,8)"

"题目22:对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入

栈结点,并给该结点赋值a,则执行:p=(structnode*)maIIoc(sizeof(struct

node);p->data=a;和()0

:p->next=top;p=top;

;p->;next-top;top=p;

;top->next=p;p=top;

;top=top-Sgt;next;p=top;"

“题目23:头指针为head的带头结点的单向链表为空的判定条件是()为真。

:head_>;next!=NULL

;head->next-NULL

;head==NULL

;head->next!=NULL"

"题目24:设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序

为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该

矩阵是()阶的对称矩阵。

:5

;15

;20

;10"

"题目25:数组a经初始化chara[]="English”;a[1]中存放的是()。

8

:"E"

IfII

;n

;字符n

;字符E"

"题目26:设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,

则可执行操作。hs=s;

s->next=hs;"

"题目27:设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x

保存出栈结点的值,栈

结点的指针域为next,则可执行hs=hs->next;x=hs->data;"

"题目28:有一个链栈,栈顶指针为h,现有一个p所指向的结点要入栈,

则可执行操作p->next=h;

和h=p;"

题目29:设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保

存出栈结点的值,栈结点的指针域为next,数据域为data,则可执行hs=

hs->next;x=hs->data;

题目30:在一个链队中,千和r分别为队头和队尾指针,队结点的指针域为

next,则插入所指结点的操作为r->next=s:r=s;

题目31:在一个链队中,千和r分别为队头和队尾指针,队结点的指针域为

next,s指向一个要入队的结点,则入队操作为r=s;r->next=s;

题目32:在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,

队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放

出队元素的数据值,则相关操作为x=f->;data;f=f->;next;

题目33:对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵

A相应的三元组表共有8个元素,则矩阵A共有34个零元素。

题目34:循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为

r,当(r+1)%MaxSize=f时表明队列已满。

题目35:循环队列的队头指针为f,队尾指针为r,当r==千时表明队列已满。

题目36:空串的长度是0;空格串的长度是空格字符的个数。

题目37:对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包

括该元素的行下标、列下标、和非零元素值三项信息。

题目38:循环队列的引入,目的是为了克服假上溢。

”题目39:

设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开

始,元素s[26]相应于A中的元素为a7,5o"

题目40:循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以

有效的判断栈空或栈满,若队头指针front=4,当队尾指针rear=3时队满。

题目41:循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以

有效的判断栈空或栈满,若队头指针front=4,队尾指针rear=3时,队列中共

有5个元素。

"题目42:以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈

顶指针

structnode

{EIemTypedata;

9

structnode*next;

};

structnode*top;

voidPush(ElemTypex)

(

structnode*p;

p=(structnode*)maIIoc[[1]];

p->data=x;

[[3]];

[[2]];

1

;[[1]]->{A.sizeof(structnode)/top=p/p->next=top}"

”题目43:以下函数为链队列的入队操作,x为要入队的结点的数据域的

值,front、rear分别链队列的队头、队尾指针

structnode

{EIemTypedata;

structnode*next;

};

structnode*front,*rear;

voidInQueue(ElemTypex)

(

structnode*p;

p=(structnode*)maIIoc[[3]];

p->data=x;

p->;next二NULL;

[[1]];

rear=[⑵];

)

;[⑴]->;{rear->next=p/p/(sizeof(structnode)}"

答案

标准答案1:3,1,2

标准答案2:1,2,3,4

标准答案3:先移动栈顶指针,再存入元素

标准答案4:p->next=top;top=p;

标准答案5:x=top->data;top=top->next;

标准答案6:front=rear

标准答案7:(rear+1)%MaxSize-front

标准答案8:top==n-1

标准答案9:17

标准答案10:队列

10

标准答案11终止条件和递归部分

标准答案12f=f->next;

标准答案13r->next=s;r=s;

标准答案14字符串的结束符

标准答案15Bed

标准答案16:a1

标准答案17两串的长度相等,并且对应位置上的字符相同

标准答案1870

标准答案19可以是子表或原子

标准答案2074

标准答案21(10,8,6)

标准答案22p->next=top;top=p;

标准答案23head->next-NULL

标准答案2410

标准答案25字符n

标准答案26错

标准答案27错

标准答案28对

标准答案29错

标准答案30对

标准答案31错

标准答案32对

标准答案33对

标准答案34对

标准答案35错

标准答案36对

标准答案37对

标准答案38对

标准答案39错

标准答案40对

标准答案41对

标准答案42{A.sizeof(structnode)}{p->next=top}{top=p}

标准答案43{(sizeof(structnode)){rear->next=p}lp)

形考3

"题目1:假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子

结点数为()O

:16

;15

;17

;47"

"题目2:二叉树第k层上最多有()个结点。

:2k-1

11

;2k

;2k-1

;2k-1"

"题目3:将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依

次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号

为()。

:33

;34

;35

;36"

"题目4:如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径

长度最小,则该树称为()。

:二叉树

;平衡二叉树

;哈夫曼树

;完全二叉树"

"题目5:在一棵度具有5层的满二叉树中结点总数为()。

:33

;32

;16

;31"

"题目6:一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()

个结点。

:38

;37

;72

;31"

"题目7:利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,

该树中所有叶子结点中的最长带权路径长度为()。

:18

;16

;30

;12"

"题目8:在一棵树中,()没有前驱结点。

:空结点

;树根结点

;叶结点

;分支结点”

"题目9:设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树

结点中共有20个指针域为空,则该树有()个叶结点。

:21

;22

;10

;9"

12

"题目10:在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。

:2

;4

;1

:1/2"

"题目11:邻接表是图的一种()。

:链式存储结构

;索引存储结构

;顺序存储结构

;散列存储结构"

"题目12:图的深度优先遍历算法类似于二叉树的()遍历。

:后序

;先序

;层次

;中序"

"题目13:已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行

遍历,则可能得到的一种顶点序列为()。

:V1V2V4V8V3V5V6V7

;V1V3V6V7V2V4V5V8

;V1V2V4V5V8V3V6V7

;V1V2V4V8V5V3V6V7"

"题目14:已知如下图所示的一个图,若从顶点a出发,按广度优先搜索法进行

遍历,则可能得到的一种顶点序列为()。

:aedfcb

;aebcfd

;abecdf

;aecbdf"

"题目15:图状结构中数据元素的位置之间存在()的关系。

:多对多

;一对一

;一对多

;每一个元素都有一个且只有一个直接前驱和一个直接后继"

"题目16:在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编

号为()。

:2i

;2i+2

;2i+1

;2i-1"

"题目17:一棵具有16个结点的完全二叉树,共有()层。(设根结点在

第一层)

:4

;5

;6

;7"

13

"题目18:对二叉排序树进行()遍历,可以使遍历所得到的序列是有序

序列。

:后序

;按层次

;中序

;前序"

"题目19:已知一个图的边数为m,则该图的所有顶点的度数之和为()。

:2m

;m/2

;m

;2m+1"

题目20:一棵二叉树的叶结点(终端结点)数为5,单分支结点数为2,该树共

有11个结点。

题目21:一棵有14个结点的完全二叉树,则它的最高层上有7个结点。

题目22:一棵二叉树有6个叶结点,则该树总共有11个结点。

题目23:根据搜索方法的不同,图的遍历有.先序;中序;后序三种方法。

题目24:对于一棵具有n个结点的二叉树,其相应的链式存储结构中共有n-1

个指针域空。

题目25:设一棵完全二叉树,其最高层上最右边的叶结点的编号为奇数,

该叶结点的双亲结点的编号为10,该完全二叉树一共有21个结点。

题目26:设一棵完全二叉树,其最高层上最右边的叶结点的编号为偶数,

该叶结点的双亲结点的编号为9,该完全二叉树一共有19个结点。

题目27:按照二叉树的递归定义,对二叉树遍历的常用算法有深度优先遍历和

深度优先遍两种方法。

题目28:一棵有8个权重值构造的哈夫曼数,共有17个结点。

题目29:一棵有7个叶结点的二叉树,其1度结点数的个数为2,则该树共有

15个结点。

"题目30:以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格

部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT

指向根结点)。完成程序中空格部分。

void

Inorder(structBTreeNode*BT)

(

if(BT!=NULL)

(

Inorder(BT->Ieft);

[[1]]

[[3]]

}

利用上述程序对左图进行后序遍历,结果是[[2]];

;[[1]]->{Inorder(BT->right)/d,e,b,f,c,a/

printf(a%c>>,BT->data))"

"题目31:以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格

部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT

14

指向根结点)。

voidInorder(structBTreeNode*BT)

if(BT!=NULL){

Inorder(BT->Ieft);}

[[2]];

[[3]];

}

利用上述程序对右图进行中序遍历,结果是[[1]];

;[[1]]->{d,b,e,a,f,c/printf("%c”,BT->data)/Inorder(BT->right)!"

"题目32:(1)以3,4,5,8,9,作为叶结点的权,构造一棵哈夫曼树。该树

的带权路径长度为{A;B;C;D}.

A,64B.65C.62D.66

(2)权重为3的叶结点的哈夫曼编码为{A;B;C;D}o

A.010B.0101C.000D.0111"

"题目33:(1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树,该

树的带权路径长度为{A;B;C;D)

A,66B.80C.62D.87

(2)权重值为4的叶结点的哈夫曼编码为{A;B;C;D}o

A.0001B.1110C.001D.110"

"题目34:(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,

该二叉树的根结点是{A;B;C;D)

A.eB.cC.bD.a

(2)先序遍历序列是列;B;C;D}o

A.e,b,c,d,aB.c,a,b,,d,eC.a,b,d,e,cD.

a.c,b,d,e,"

"题目35:(1)已知某二叉树的先序遍历序列是aecdb,中序遍历序列是eadcb,

该二叉树的根结点是{A;B;C;D);

A.eB.cC.bD.a

(2)后序遍历序列为{A;B;C;DU

A.e,d,b,c,aB.c,a,b,,d,eC.a,b,d,e,cD.a.c,b,d,e,"

"题目36:(1)以给定权重值5,6,17,18,25,30,为叶结点,建立一棵哈

夫曼树,该树的中序遍历序列为{A;B;C;D)

A.5,11,28,6,17,58,30,101,18,43,25

B.5,11,6,28,17,58,30,101,18,43,25

C.5,11,6,28,101,58,30,17,18,43,25

D.5,11,6,28,17,58,30,101,18,25,43

(2)权重值为6的叶结点的哈夫曼为{A;B;C;D}.

A.1001B.011C.001D.0001

答案

标准答案1:16

标准答案2:2k-1

15

标准答案3:34

标准答案4:哈夫曼树

标准答案5:31

标准答案6:37

标准答案7:18

标准答案8:树根结点

标准答案9:10

标准答案102

标准答案11链式存储结构

标准答案12先序

标准答案13V1V2V4V8V5V3V6V7

标准答案14aecbdf

标准答案15多对多

标准答案162i+1

标准答案175

标准答案18中序

标准答案192m

标准答案20对

标准答案21对

标准答案22错

标准答案23错

标准答案24错

标准答案25对

标准答案26错

标准答案27错

标准答案28错

标准答案29对

标准答案30:{Inorder(BT->right)){printf("%c”,BT->data)}

{d,e,b,f,c,a}

标准答案31:{printf(<<%cw,BT->data)){Inorder(BT->right)}

{d,b,e,a,f,c)

标准答案32:子问题1:B;子问题2:C

标准答案33:子问题1:B;子问题2:C

标准答案34:子问题1:D;子问题2:C

标准答案35:子问题1:D;子问题2:A

标准答案36:子问题1:B;子问题2:D

形考4

"题目1:对线性表进行二分查找时,要求线性表必须()。

:以链接存储方式

;以链接存储方式,且数据元素有序

;以顺序存储方式,且数据元素有序

;以顺序存储方式"

16

"题目2:采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长

度为()。

:(n-1)/2

;(n+1)/2

;n/2

;n"

"题目3:有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情

况下查找成功的平均比较次数为()。

:29/10

;26/10

;31/10

;29/9"

"题目4:已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素

55需要比较()次。

:5

;6

;4

;3"

"题目5:有数据[53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形

成二叉排序树,若希望高度最小,应该选择的序列是()。

:30,24,12,37,45,96,53

;45,24,53,12,37,96,30

;12,24,30,37,45,53,96

;37,24,12,30,53,45,96"

"题目6:对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半

查找,则查找元素26的比较次数是()。

:6

;4

;5

;3"

"题目7:在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的

是()。

:直接选择排序

;希尔排序

;冒泡排序

;直接插入排序”

"题目8:从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。

将其放入已排序序列的正确的位置上,此方法称为()。

:选择排序

;插入排序

;交换排序

;归并排序"

"题目9:依次将每两个相邻的有序表合并成一个有序表的排序方法称为()。

:选择排序

17

;交换排序

;插入排序

;归并排序"

"题目10:当两个元素出现逆序的时候就交换位置,这种排序方法称为()。

:交换排序

;选择排序

;归并排序

;插入排序"

"题目11:每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的

关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记

录的关键字,这种排序称为()。

:归并排序

;快速排序

;插入排序

;堆排序"

”题目12:一组记录的关键字序列为(46,20,30,79,56,38,40,84,90,110),

利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

:20,30,40,38,46,79,56,84,90,100

;30,20,40,38,46,84,56,79,90,100

;40,20,30,38,46,56,79,84,90,110

;20,3038,40,46,56,79,84,90,100

”题目13:在有序表{10,14,34,43,47,64,75,80,90}中,用折半查找法

查找值80时,经()次比较后查找成功。

:3

;5

;4

;2"

"题目14:对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进

行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行

()次元素间的比较。

:5

;6

;4

;3"

"题目15:排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列

(初始为空)的一端的方法,称为()排序。

:插入

;归并

;快速

;选择”

"题目16:一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序

的方法建立的初始小根堆为()。

:18,20,36,59,26,25

;18,20,25,59,26,36

18

;26,18,59,20,36,25

;26,59,36,18,20,25"

”题目17:一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,

72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟

归并后的结果为()O

16,25,35,48,23,40,79,82,36,72

16,25,35,48,79,82,23,36,40,72

16,25,48,35,79,82,23,36,40,72

16,25,35,48,79,23,36,40,82,72"

'题目18:已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),

对该数列从小到大排序,经过一趟冒泡排序后的序列为()O

28,16,34,54,62,73,60,26,43,95

16,28,34,54,73,62,60,26,43,95

16,28,34,54,62,60,73,26,43,95

28,16,34,54,62,60,73,26,43,95"

'题目19:一组记录的关键字序列为(46,79,56,38,40,84),利用快速排

序,以第一个关键字为分割元素,经过一次划分后结果为()O

:40,38,46,79,56,84

;40,38,46,56,79,84

;40,38,46,84,56,79

;38,40,46,56,79,84"

"题目20:一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆

顶元素是最小元素)的方法建立的初始堆为()。

:39,46,41,57,80,47

;39,47,46,80,41,57

;39,80,46,47,41,57

;41,39,46,47,57,80"

"题目21:以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结

点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树

结点,不成功p指向为NULL)完成程序中的空格

typedefstructBnode

{intkey;

structBnode*Ieft;

structBnode*right;

}Bnode;

Bnode*BSearch(Bnode*bt,intk)

/*bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/

{Bnode*p;

if(bt==[[2]])

return(bt);

p=bt;

while(p->key!=[[5]])

{if(kkey)

[[1]];

19

else[[3]];

if(p==NULL)break;

)

return([[4]];

}

;[[1]]->{p=p->Ieft/NULL/p=p->right/p/k)"

"题目22:以下程序是折半插入排序的算法

设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是

要把a插入到已经有序的序列a[1],…a[i7]中。

voidbinsort(NODEa[],intn)

{intx,i,j,s,k,m;

for(i=2;i<;=[[4]];i++)

{a[0]=a;

x=a.key;

S=1;

j=i-1;

while(s<=j)

{m=[⑴]

if(x<a[m].key)[[2]]eIse

[[5]]}for(k=i-1;k>=j+1;k--)

[[3]]=a[k];

a[j+1]=a[0];

}

}

;[[1]]->{(s+j)/2/j=m-1/a[k+1]/n/s=m+1}"

"题目23:(1)设查找表为(1,10,11,14,23,27,29,55,68),画出对上述查

找表进行折半查找所对应的判定树,为了成功查找到元素14,需要依次与元素{A;

B;C;D}进行比较。

A.23,10,1,14B,23,29,27,14C.23,10,11,14

D.23,29,55,14

(2)在等概率条件下,成功查找的平均比较次数为{A;B;C;D}o

A.24/9B.25/9C.3D.2.5

It

"题目24:(1)一组记录的关键字序列为(47,80,57,39,41,46),利

用堆排序的方法建立的初始堆为{A;B;C;D}(堆顶元素是最小元素,采用树的

形式建堆)。

A.39,41,57,80,47,46B,39,41,46,80,47,57

C.39,47,46,80,41,57D.39,41,57,80,46,47

(2)输出堆顶元素后,调整后的堆为{A;B;C;D}。

A.41,47,46,80,57B.41,57,46,80,47

C.41,57,80,47,46D.41,80,46,47,57"

"题目25:(1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第

一个关键字为分割元素,经过一次划分后结果为{A;B;C;D};

A.46,51,56,54,71,106B.56,51,54,46,71,106

20

C.46,51,54,56,71,106D.56,51,46,54,71,106

(2)一组记录的关键字序列为(60,47,80,57,39,41,46,30),利用归

并排序的方法,经过(2,2)归并的结果序列为(A;B;C;D}。.

A.(30,57,60,80,47,39,41,46)B.(47,60,57,80,

30,39,41,46)

C.(41,57,60,80,30,39,47,46)D.(47,57,60,80,

30,39,41,46)"

"题目26:(1)对关键字序列(36,69,46,28,30,74)采用快速排序,以第一

个关键字为分割元素,经过一次划分后的结果序列为{A;B;C;D)

A.30,28,46,36,69,74B.28,30,36,46,69,74

C.28,30,46,36,69,74D,30,28,36,46,69,74

(2)用冒泡法对上述序列排序,经两越冒泡的结果序列为{A;B;C;D}。

A.36,28,30,46,69,74B.36,46,28,20,69,74

.C.38,36,30,46,69,74D.28,36,,30,46,69,74"

"题目27:(1)一组记录的关键字序列为{45,40,65,43,35,95}写出利

用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为{A;B;C;D};

A.354065453595

B.354065434595

C.354043456595

D.354045436595

(2)对上述序列利用直接插入排序,逐次插入过程中,共进行了{A;B;C;D)

次元素间的比较。

A.8B.11C.9D.10"

答案

标准答案1:以顺序存储方式,且数据元素有序

标准答案2:(n+1)/2

标准答案3:29/10

标准答案4:5

标准答案5:37,24,12,30,53,45,96

标准答案6:4

标准答案7:直接选择排序

标准答案8:插入排序

标准答案9:归并排序

标准答案10:交换排序

标准答案11:快速排序

标准答案12:40,20,30,38,46,56,79,84,90,110

标准答案13:3

标准答案14:5

标准答案15:选择

标准答案16:18,20,25,59,26,36

标准答案17:16,25,35,48,23,40,79,82,36,72

标准答案18:28,16,34,54,62,73,60,26,43,95

21

标准答案1940,38,46,56,79,84

标准答案2039,46,41,57,80,47

标准答案21{NULL}{k}{p=p->left}{p=p->right}{p}

标准答案22{n}{(s+j)/2}{j=m-1}{s=m+1}{a[k+1]}

标准答案23子问题1:C:子问题2:B

标准答案24子问题1:B:子问题2:A

标准答案25子问题1:0;子问题2:D

标准答案26子问题1:D:子问题2:A

温馨提示

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

评论

0/150

提交评论