数据结构知到智慧树章节测试课后答案2024年秋广州大学_第1页
数据结构知到智慧树章节测试课后答案2024年秋广州大学_第2页
数据结构知到智慧树章节测试课后答案2024年秋广州大学_第3页
数据结构知到智慧树章节测试课后答案2024年秋广州大学_第4页
数据结构知到智慧树章节测试课后答案2024年秋广州大学_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

数据结构知到智慧树章节测试课后答案2024年秋广州大学第一章单元测试

与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A:逻辑结构B:存储实现C:运算实现D:存储结构

答案:逻辑结构说法正确的是()。

A:一些表面上很不相同的数据可以有相同的逻辑结构B:数据项是数据的基本单位C:数据结构是带有结构的各数据项的集合D:数据元素是数据的最小单位

答案:一些表面上很不相同的数据可以有相同的逻辑结构在这些数据结构中,()是非线性数据结构

A:树B:队列C:栈D:字符串

答案:树在数据结构中,数据的基本单位是()。

A:数据项B:数据元素C:数据变量D:数据类型

答案:数据元素计算算法的时间复杂度是属于一种()。

A:事前分析估算的方法B:事后统计的方法C:事前统计的方法D:事后分析估算的方法

答案:事前分析估算的方法数据元素之间的关系称为()

A:结构B:数据对象C:操作D:数据集合

答案:结构在下列算法中,“x=x*2”的执行次数是()

intsuanfal(intn){

inti,j,x=1;for(i=0;i<n;i++)for(j=i;j<n;j++)x=x*2;

returnx;}

A:n(n-1)/2B:nlog2nC:n2D:n(n+1)/2

答案:n(n+1)/2求整数n(n≥0)阶乘的算法如下,其时间复杂度是()

intfact(intn){

if(n<=1)return1;return

n×fact(n-1);}

A:O(nlog2n)B:O(n2)C:O(n)D:O(log2n)

答案:O(n)数据元素可以由类型互不相同的数据项构成。()

A:错B:对

答案:对在顺序存储结构中,有时也存储数据结构中元素之间的关系。()

A:对B:错

答案:错算法可以没有输人,但是必须有输出。()

A:对B:错

答案:对

第二章单元测试

线性表是一个()

A:有限序列,可以为空B:无限序列,可以为空C:无限序列,不能为空D:有限序列,不能为空

答案:有限序列,可以为空能在O(1)时间内访问线性表的第i个元素的结构是()。

A:单链表B:顺序表C:双向链表D:单向循环链表

答案:顺序表线性表是具有n(n>0)个()的有限序列。

A:字符B:数据元素C:表元素D:数据项

答案:数据元素若某线性表最常用的操作是存取任一指定序号的元素并在最后进行插入和删除运算,则利用()存储方式最节省时间。

A:单循环链表B:顺序表C:带头结点的双循环链表D:双链表

答案:顺序表线性表(a1,a2,…,an)以链接方式存储时,访问第i个位置元素的时间复杂性为()。

A:O(i)B:О(1)C:O(i-1)D:O(n)

答案:O(n)将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()

A:O(m+n)B:О(m)C:O(n)D:O(1)

答案:О(m)链表具有的特点是()。

A:不必事先估计存储空间B:插入、删除不需要移动元素C:可随机访问任一元素D:所需空间与线性长度成正比

答案:不必事先估计存储空间;插入、删除不需要移动元素;所需空间与线性长度成正比已知L是有头结点的非空单链表,则要在P结点前插入S结点的语句序列是()

A:while(Q->next!=P)Q=Q->next;B:Q->next=S;C:Q=L;D:Q=P;E:deleteQ;F:S->next=Q->next;G:P->next=Q->next;H:P=Q;I:P->next=S->next;

答案:while(Q->next!=P)Q=Q->next;;Q->next=S;;Q=L;;S->next=Q->next;下面代码是实现尾插法创建单链表L的过程,请选择合适的语句,将代码补充完整。()

voidCreatList_R(LinkList&L,intn){

L=newLNode;

L->next=NULL;

for(inti=0;i<n;i++){

LNode*p=newLNode;

cin>>p->data;

r=p;

}}

A:LNode*p=NULL;B:p->next=NULL;r->next=p;C:LNode*r=L;D:LNode*r=L->next;E:r->next=NULL;p->next=r;

答案:p->next=NULL;r->next=p;;LNode*r=L;线性表的逻辑顺序与物理顺序总是一致的。()

A:错B:对

答案:错线性表的插入和删除操作总是伴随着大量数据的移动。()

A:对B:错

答案:错在顺序表中取出第i个元素所花费的时间与i成正比。()

A:对B:错

答案:错线性表采用链式存储表示时,所有结点之间的存储单元地址可连续可不连续。()

A:错B:对

答案:对在单链表中,要访问某个结点,只要知道该结点的指针即可,因此,单链表是一种随机存取结构。()

A:对B:错

答案:错在具有头结点的链式存储结构中,头指针指向链表中的第一个数据结点。()

A:对B:错

答案:错在一个具有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。()

A:对B:错

答案:错

第三章单元测试

数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A:n+r-fB:r-fC:(n+r-f)%nD:(n+f-r)%n

答案:(n+r-f)%n为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是()。

A:有序表B:线性表C:栈D:队列

答案:队列用链接方式存储的队列,在进行删除运算时()。

A:仅修改头指针B:头、尾指针可能都要修改C:仅修改尾指针D:头、尾指针都要修改

答案:头、尾指针可能都要修改同一组不重复输入序列,执行不同的入、出站组合操作,所得结果也可能相同。()

A:对B:错

答案:对若某堆栈初始为空,push与pop分别表示对栈进行一次进栈与出栈操作,那么,对于输入序列A、B、C、D、E经过pushpushpoppushpoppushpush以后,输出序列中有元素()。

A:DB:BC:AD:CE:E

答案:B;C下面代码实现的是一个顺序栈S的出栈操作,请选择合适的语句将代码补充完整。()

boolPop(SqStack&S,ElemType&e){

if(

)return0;

return1;}

A:S.top==NULL;B:e=*S.top;S.top--;C:S.base==NULL;D:S.top==S.base;E:

S.top--;e=*S.top;

答案:S.top==S.base;;

S.top--;e=*S.top;下面代码实现的是一个循环队列Q的出队操作,请选择合适的语句将代码补充完整。()boolDeQueue(SqQueue&Q,ElemType&e){

if(

)return0;

e=Q.base[②];

return

1;}

A:Q.front==Q.rear;B:Q.front+1;C:Q.front=(Q.front+1)%MAXSIZE;D:Q.rear=(Q.rear+1)%MAXSIZE;E:Q.front;

答案:Q.front==Q.rear;;Q.front=(Q.front+1)%MAXSIZE;;Q.front;

第四章单元测试

由3个结点可以构造出多少种不同的二叉树?()

A:3B:5C:2D:4

答案:5一个具有1025个结点的二叉树的高h为()。

A:10B:11至1025之间C:10至1024之间D:11

答案:11至1025之间利用二叉链表存储树,则根结点的右指针是()。

A:指向最右孩子B:空C:指向最左孩子D:非空

答案:空n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是()。

A:树中任一非叶结点的权值一定不小于下一层任一结点的权值B:该树一定是一棵完全二叉树C:树中两个权值最小的结点一定是兄弟结点D:树中一定没有度为1的结点

答案:该树一定是一棵完全二叉树下列判断中,()是正确的。

A:深度为k的二叉树最多有2k-1个结点(k≥1),最少有k个结点B:二叉树中不存在度大于2的结点C:构造线索二叉树是为能方便找到每个结点的双亲D:对二叉树遍历是指先序、中序或后序遍历中的一种

答案:深度为k的二叉树最多有2k-1个结点(k≥1),最少有k个结点;二叉树中不存在度大于2的结点根据()可以唯一地确定一棵二叉树。

A:先序遍历和中序次遍历B:中序遍历和后序遍历C:先序遍历和后序遍历D:中序遍历

答案:先序遍历和中序次遍历;中序遍历和后序遍历下面代码是中序遍历二叉树的非递归算法,请选择合适的语句将代码补充完整。()

A:p=q->rchild;B:p=p->lchild;C:q=q->lchild;D:p=p->rchild;

答案:p=q->rchild;;p=p->lchild;二叉树只能采用二叉链表来存储。()

A:对B:错

答案:错二叉树是度为2的有序树。()

A:对B:错

答案:错对一棵有n个结点的二叉树,从上到下、从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i<n),右儿子是2i+1(2i+1<n)。()

A:错B:对

答案:错用二叉树的前序遍历序列和中序遍历序列可以求出二叉树的后序序列序列。()

A:对B:错

答案:对哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根结点较近。()

A:错B:对

答案:对

第五章单元测试

在一个图中,所有顶点的度数之和等于图的边数的()倍。

A:4B:1C:1/2D:2

答案:2下面()算法适合构造一个稠密图G的最小生成树。

A:Kruskal算法B:Dijkstra算法C:Prim算法D:Floyd算法

答案:Prim算法广度优先遍历类似于二叉树的()。

A:层次遍历B:先序遍历C:中序遍历D:后序遍历

答案:层次遍历已知图的邻接矩阵如图所示,则从顶点v0出发按深度优先遍历的结果是()。

A:0361542B:0134256C:0243156D:0136542

答案:0134256下面()方法不可以判断出一个有向图是否有环。

A:深度优先遍历B:拓扑排序C:求关键路径D:求最短路径

答案:拓扑排序n个结点的无向图,若不允许结点到自身的边,也不允许结点到结点的多重边,且边的总数为n(n-1)/2,则该无向图一定是连通图。()

A:错B:对

答案:对n个结点的有向图,若它有n(n-1)条边,则它一定是强连通的。()

A:错B:对

答案:对无向图中任何一个边数最少且连通所有顶点的子图都是该无向图的生成树。()

A:错B:对

答案:对图g的顶点v的入度等于其邻接矩阵中第v列中的1的个数。()

A:对B:错

答案:对用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中结点个数有关,而与图的边数无关。()

A:对B:错

答案:对有e条边的无向图在邻接表中有e个结点。()

A:对B:错

答案:错任何无向图都存在生成树。()

A:对B:错

答案:错不同的求最小生成树的方法最后得到的生成树是相同的。()

A:错B:对

答案:错一个带权的无向连通图的最小生成树的权值之和是唯一的。()

A:对B:错

答案:对连通图上各边权值均不相同,则该图的最小生成树是唯一的。()

A:对B:错

答案:对对于任意一个图,从它的某个顶点进行一次先深或先广搜索可以访问到该图的每个顶点。()

A:错B:对

答案:错采用深度优先搜索或拓扑排序算法可以判断出一个有向图中是否有环。()

A:错B:对

答案:对如果有向图的拓扑排序序列是唯一的,则图中必定只有一个顶点的入度为0,一个顶点的出度为0。()

A:错B:对

答案:对具有n个顶点和e条边的无向图,若用邻接矩阵作为存储结构,则求任意顶点的度数的时间复杂度为O(e)。()

A:对B:错

答案:错广度优先搜索遍历图的时间复杂度和深度优先搜索遍历的相同。()

A:对B:错

答案:对在拓扑序列中,任意两个相继结点Vi和Vj都存在从Vi到Vj的路径。()

A:错B:对

答案:错有向图如下图所示,该图的深度优先遍历序列是()。

A:12543B:13254C:15432D:12345

答案:12543;13254;15432下列关于最小生成树的叙述中,不正确的是()。

A:使用Prim算法从不同顶点开始得到的最小生成树一定相同B:最小生成树的代价唯一C:使用Prim算法和Kruskas算法得到的最小生成树总不相同。D:所有权值最小的边一定会出现在最小生成树中

答案:使用Prim算法从不同顶点开始得到的最小生成树一定相同;使用Prim算法和Kruskas算法得到的最小生成树总不相同。;所有权值最小的边一定会出现在最小生成树中无向图如下图所示,在求该图的最小生成树时,可能是Kruskal算法第二次选中的边,也可能是Prim算法,从4号顶点开始,第二次选中的边是()。

A:(2,3)B:(1,4)C:(3,4)D:(1,3)

答案:(3,4);(1,3)下面哪些方法可以用来判断一个有向图中是否有环存在。()

A:广度优先遍历B:深度优先遍历C:求最短路径算法D:拓扑排序

答案:深度优先遍历;拓扑排序

第六章单元测试

衡量查找算法效率的主要标准是()。

A:算法难易程度B:平均查找长度C:元素个数D:所需的存储量

答案:平均查找长度对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。

A:nB:(n+1)/2C:n/2D:(n-1)/2

答案:(n+1)/2已知8个元素为{34,76,45,18,26,54,92,65},按照依次有序插入结点的方法生成一棵二叉排序树,最后两层上结点的总数为()。

A:1B:2C:3D:4

答案:2顺序查找法,表中元素可以任意存放。()

A:错B:对

答案:对折半查找法要求待查表的关键字值必须有序。()

A:对B:错

答案:对在有序的顺序表和有序的链表上,均可以采用折半查找法来提高查找速度。()

A:错B:对

答案:错对一棵二叉排序树,按先序方法进行遍历,得出的结点序列是从小到大的排序序列。()

A:对B:错

答案:错在二叉排序树中插入一个新结点总是插入到叶结点的下面。()

A:错B:对

答案:错在二叉排序树中,根结点的值都小于孩子结点的值。()

A:错B:对

答案:错利用二叉排序树进行查找时,若关键字的值比根结点的值小,则继续在左子树中查找。()

A:对B:错

答案:对在二叉排序树上删除一个结点时,不必移动其他结点,只要将该结点的父结点的相应指针域置空即可。()

A:对B:错

答案:错对于一个堆,按照二叉树的层次遍历,可以得到一个有序序列。()

A:错B:对

答案:错下面针对折半查找算法,说法正确的是()

A:折半查找不适用于数据元素经常变动的线性表。B:当给定的关键字与mid位置处的关键字不相等时,说明查找失败。C:在折半查找算法对应的二叉判定树中,结点的值是查找表中数据元素的关键字。D:当给定的关键字与mid位置处的关键字相等时,说明查找成功。

答案:折半查找不适用于数据元素经常变动的线性表。;当给定的关键字与mid位置处的关键字相等时,说明查找成功。下列选项中,能构成折半查找中关键字比较序列的是()。

A:180,500,200,450B:180,200,500,450C:500,450,200.180D:500,200,450,180

答案:180,500,200,450;180,200,500,450;500,450,200.180对于下列关键字序列,可能构成某二叉排序树中一条查找路径的序列是()。

A:95,22,91,24,94,71B:12,25,71,68,33,34C:92,20,91,34,88,35D:21,89,77,29,36,38

答案:12,25,71,68,33,34;92,20,91,34,88,35;21,89,77,29,36,38

下面代码是折半查找的递归算法,请为①②位置处选择合适的语句。()

A:midB:highC:lowD:r[mid].key>kE:r[mid].key<k

答案:mid;r[mid].key<k

第七章单元测试

评价排序算法好坏的标准主要是()。

A:执行时间B:辅助空间C:算法本身的复杂度D:执行时间和所需的辅助空间

答案:执行时间和所需的辅助空间内排序是指在排序的整个过程中,全部数据都在计算机的()中完成的排序。

A:内存和外存B:寄存器C:内存D:外存

答案:内存直接插入排序的方法是从第()个元素开始,插入到前边适当位置的排序方法。

A:nB:1C:3D:2

答案:2按排序策略分类,冒泡排序属于()。

A:交换排序B:插入排序C:分配排序D:选择排序

答案:交换排序用直接插入排序法对下面的4个序列进行由小到大的排序,元素比较次数最少的是()。

A:21,32,46,40,80,69,90,94B:94,32,40,90,80,46,21,69C:32,40,21,46,69,94,90,80D:90,69,80,46,21,32,94,40

答案:21,32,46,40,80,69,90,94从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为()。

A:插入排序B:快速排序C:冒泡排序D:选择排序

答案:插入排序从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。

A:冒泡排序B:插入排序C:选择排序D:快速排序

答案:选择排序对n个不同的关键字由小到大进行冒泡排序,在下列()情况下比较的次数最多。

A:元素基本有序B:元素无序C:从小到大排列好的D:从大到小排列好的

答案:从大到小排列好的对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为()。

A:nB:n-1C:n(n-1)/2D:n+1

答案:n(n-1)/2快速排序在下列()情况下最不易发挥其长处。

A:被排序的数据完全无序B:被排序的数据中含有多个相同排序码C:被排序的数据中的最大值和最小值相差悬殊D:被排序的数据已基本有序

答案:被排序的数据已基本有序对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A:O(n3)B:O(n2)C:O(nlog2n)D:O(n)

答案:O(n2)若一组记录的排序码为{46,79,56,38,40,84},则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A:40,38,46,84,56,79B:40,38,46,79,56,84C:40,38,46,56,79,84D:38,40,46,56,79,84

答案:40,38,46,56,79,84下列关键字序列中,()是堆。

A:16,53,23,94,31,72B:16,72,31,23,94,53C:94,23,31,72,16,53D:16,23,53,31,94,72

答案:16,23,53,31,94,72堆是一种()排序。

A:插入B:选择C:归并D:交换

答案:选择堆的形状是一棵()。

A:二叉排序树B:满二叉树C:完全二叉树D:平衡二叉树

答案:完全二叉树若一组记录的排序码为{46,79,56,38,40,84},则利用堆排序的方法建立的初始堆为()。

A:84,79,56,38,40,46B:79,46,56,38,40,84C:84,79,56,46,40,38D:84,56,79,40,46,38

答案:84,79,56,38,40,46下述几种排序方法中,()是稳定的排序方法。

A:冒泡排序B:堆排序C:简单选择排序D:快速排序

答案:冒泡排序数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用()算法最节省时间。

A:简单选择排序B:冒泡排序C:快速排序D:堆排

温馨提示

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

评论

0/150

提交评论