智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx

上传人:b****6 文档编号:4566211 上传时间:2022-12-06 格式:DOCX 页数:30 大小:512.49KB
下载 相关 举报
智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx_第1页
第1页 / 共30页
智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx_第2页
第2页 / 共30页
智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx_第3页
第3页 / 共30页
智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx_第4页
第4页 / 共30页
智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx

《智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx》由会员分享,可在线阅读,更多相关《智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx(30页珍藏版)》请在冰豆网上搜索。

智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案.docx

智慧树知道网课《数据结构中国海洋大学》课后章节测试满分答案

第一章测试

【单选题】(2分)图书馆的数目检索系统采用关系的数据结构。

A.

树形

B.

图状

C.

集合

D.

线性

2【单选题】(2分)是相互之间存在一种或多种特定关系的数据元素的集合。

A.数据项

B.

数据结构

C.

数据元素

D.

数据

3【单选题】(2分)()是一个值的集合和定义在这个值集上的一组操作的总称。

A.数据项

B.

数据类型

C.

数据元素

D.

数据结构

4【单选题】(2分)算法的确定性是指()

A.

算法中没有逻辑

B.在任何情况下,算法不会出现死循环

C.算法中的每一条指令必须有确切的含义

D.当输入数据非法时,算法也能作出反应或进行处理

第二章测试

1

【单选题】(2分)线性表中的数据元素有一个前驱多个后继。

A.

B.

2

【单选题】(2分)用顺序结构存储,删除最后一个结点时,()

A.

其它

会移动其它结点位置

可能会移动其它结点位置

一定不会移动其它结点位置

3【单选题】(2分)链表中逻辑上相邻的元素的物理地址相邻。

A.一定不

B.

必定

C.

其它

D.

不一定

4

【单选题】(2分)

1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算

法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元

素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。

//将合并逆置后的结果放在C表中,并删除B表

StatusListMergeOppose_L(LinkList&A,LinkList&B,LinkList&C)

{

LinkListpa,pb,qa,qb;

pa=A;

pb=B;

qa=pa;//保存pa的前驱指针

qb=pb;//保存pb的前驱指针

pa=pa->next;

pb=pb->next;

A->next=NULL;

C=A;while(pa&&pb){if(pa->datadata){qa=pa;

pa=pa->next;

qa->next=A->next;//将当前最小结点插入A表表A->next=qa;

}

else{qb=pb;pb=pb->next;

()//将当前最小结点插入B表表头

A->next=qb;

}

}while(pa){qa=pa;pa=pa->next;

qa->next=A->next;

A->next=qa;

}

while(pb){qb=pb;pb=pb->next;

qb->next=A->next;

A->next=qb;

}

pb=B;

free(pb);returnOK;

}

A.

qa->next=A->next

qa->next=A;

qb->next=A->next

D.qb->next=A;

5

【单选题】(2分)

假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。

已知s为指向链表

中某个结点的指针,试编写算法在链表中删除指针s所指结点的前驱结点。

StatusListDelete_CL(LinkList&S)

{

LinkListp,q;

if(S==S->next)returnERROR;

q=S;

p=S->next;

while(){

q=p;

p=p->next;

}

q->next=p->next;

free(p);

returnOK;

}

A.

p==S

 

p->next==S

p->next!

=S

第三章测试

1

【单选题】(2分)

若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是();

A.

SXSXXSSX

B.

SSSXXSXX

C.

SXSSXXXX

D.

SXXSXSSX

2

【单选题】(2分)设计一个迷宫求解的算法,采用

A.

B.

队列

C.

线性表的链式存储结构

D.

线性表的顺序存储结构

3

【单选题】(2分)循环队列存储在数组A[0..m-1],则出队时的操作为()

A.

front=(front+1)mod(m-1)

B.

front=(front+1)modmi++;

front=(frontmodm)+1

front=front+1

 

}

if(!

a[i])returnFALSE;i++;

while(a[i]){

Pop(s,x);

if(x!

=a[i]){

DestroyStack(s);returnFALSE;

}

i++;

}

returnTRUE;

}

A.

Pop(s,a[i++])

B.

Pop(s,a[i])

C.

Push(s,a[i++])

D.

Push(s,a[i])

【单选题】(2分)

StatusSymmetryString(char*p){Queueq;if(!

InitQueue(q))return0;Stacks;InitStack(s);ElemTypee1,e2;while(*p){Push(s,*p);EnQueue(q,*p);p++;}while(!

StackEmpty(s)){()DeQueue(q,e2);if(e1!

=e2)returnFALSE;}returnOK;}

Push(s,*p);

B.

P--P--P--P--P--P--P--P

C.

Pop(s,e1);

D.

EnQueue(q,*p)

第四章测试

1

【单选题】(2分)

设s='IAMASTUDEN'T,t='GOO'D,则Concat(Substring(s,6,2),Concat(t,SubString(s,7,8)))=()

A.

AGOODSTUDENT

B.

AGOODWORKER

C.

STGOODSTUDENT

D.

AGOODWORKER

单选题】(2分)

空串与空格串是相同的,这种说法

A.不正确

B.正确

3

【单选题】(2分)

设串sl=″DataStructureswithJava″,s2=“,it则″子串定位函数index(s1,s2)的值为(

);

B.

C.

15

16

18

D.

17

4

【单选题】(2分)串的长度是指()

串中所含字符的个数

B.

串中所含不同字母的个数

C.

串中所含非空格字符的个数

D.

串中所含不同字符的个数

5

【判断题】(2分)串是一种数据对象和操作都特殊的线性表。

A.

B.

第五章测试

1

【单选题】(2分)

数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是。

B.

80

C.

240

100

2

【单选题】(2分)

假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。

已知A的

起始存储位置为1000,计算数组A按行存储时元素A[14]第一个字节的位置();

A.

1072

B.

1030

C.

1024

D.

1018

3

【单选题】(2分)

若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了

对该矩阵的转置运算,这种观点()。

B.

正确

4

)的长度为();

【单选题】(2分)

广义表((()),a,((b,c),(),d),(((e)))

A.

3

B.

5

C.

2

D.

单选题】(2分)

面说法不正确的是()。

广义表的表头总是一个广义表

广义表可以是一个多层次的结构

广义表难以用顺序存储结构

广义表的表尾总是一个广义表

6

【单选题】(2分)

1.试按教科书5.5节图5.10所示的结点结构编写复制广义表的递归算法。

//由广义表L复制广义表T

intCopyGList(GList&T,GList&L)

{if(!

L)T=NULL;

else{T=newGLNode;

if(!

T)exit(OVERFLOW);

T->tag=L->tag;if(L->tag==ATOM)T->atom=L->atom;

else{

CopyGList(T->tp,L->tp);

}

}

returnOK;

}

A.

CopyGList(L->hp,T->hp)

CopyGList(T->hp,L->hp);

CopyGList(L->tp,T->tp);

A.CopyGList(T,L)

第六章测试

1

【单选题】(2分)

已知一棵树边的集合为{,,,,,,,,,,,,},问这棵树中结点G的双亲结点为()

A.

I

B.

C

C.

B

D.

A

 

2

【单选题】(2分)

一棵二叉树中,叶子的个数为10,则其度为2的结点的个数为();

12

A.

B.

C.

3

【单选题】(2分)

假如一棵二叉树的中序遍历结果为ABCD,则结点A和结点D的关系一定不是();

A.

结点A是结点D的左子树上的结点

B.

结点A是结点D的双亲结点

C.

结点A是结点D的右子树上的结点

D.

结点A与结点D具有共同的双亲的右子树上的结点

4

【单选题】(2分)

已知一棵树边的集合为{,,,,,,,,,,,,},将此树转化为二叉树后,E的左孩子为();

A.

B.

C.

【单选题】(2分)

一棵哈夫曼树有17个结点,则其叶子结点的个数是

A.

B.

C.

D.

10

6

【单选题】(2分)写递归算法,将二叉树中所有结点的左、右子树相互交换。

StatusExchangeBiTree(BiTree&T)

{

BiTreep;

if(T){

p=T->lchild;

T->lchild=T->rchild;

T->rchild=p;

ExchangeBiTree(T->lchild);

}returnOK;

}

A.

A.ExchangeBiTree(p);

B.

ExchangeBiTree(T->rchild);

C.

ExchangeBiTree(T->lchild->rchild)

D.

ExchangeBiTree(T);

7

首先建立后序线索树

再进行查找

【单选题】(2分)试写一个算法,为一棵二叉树建立后序线索二叉树。

StatusPostOrderThreading(BiThrTree&T,BiThrTree&pre);//

StatusFindNextInBiThrTree(BiThrTree&q,TElemType*p);//

//后序线索二叉树的算法

StatusPostOrderThreading(BiThrTree&Thrt,BiThrTree&T){

BiThrTreepre;

Thrt=newBiThrNode;//为线索二叉树建立头结点if(!

Thrt)exit(OVERFLOW);

Thrt->LTag=Link;

Thrt->RTag=Thread;

Thrt->rchild=Thrt;//右子树回指if(!

T)Thrt->lchild=Thrt;//若二叉树空,左子树回指else{

Thrt->lchild=T;

pre=Thrt;

PostThreading(T,pre);//后序遍历进行后序线索化pre->rchild=Thrt;//最后一个结点线索化pre->RTag=Thread;

Thrt->rchild=pre;

}returnOK;

}

StatusPostThreading(BiThrTree&T,BiThrTree&pre)

{

if(T){

if(T->LTag==Link)PostThreading(T->lchild,pre);if(T->RTag==Link)PostThreading(T->rchild,pre);if(!

T->lchild){

T->LTag=Thread;

}if(pre&&!

pre->rchild){pre->RTag=Thread;pre->rchild=T;

}

pre=T;

}returnOK;

}

A.

T->lchild=pre;

T->rchild=pre

pre->rchild=T

pre->lchild=T

单选题】(2分)

1.编写递归算法,将二叉树中所有结点的左、右子树相互交换。

StatusExchangeBiTree(BiTree&T)

{

BiTreep;

if(T){

p=T->lchild;

T->lchild=T->rchild;

T->rchild=p;

ExchangeBiTree(T->lchild);

}

returnOK;

}

A.

ExchangeBiTree(T->lchild->rchild);

ExchangeBiTree(T);

ExchangeBiTree(p);

ExchangeBiTree(T->rchild);

第七章测试

单选题】(2分)图中结点B的出度为()

2

【单选题】(2分)

对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小为();

A.

(n-1)(×n-1)

B.

n×(n+1)

C.n×n

D.(n-1)n×

3

【单选题】(2分)采用邻接表存储的图的宽度优先遍历算法类似于二叉树的()。

A.

中序遍历

先序遍历

层次遍历

后序遍历

4

【单选题】

下面的无向带权图的最小生成树包含的边有()

A.aegegfebbccd

B.

aeeddccbegdf

aggffddccbbe

aeebbccddfeg

宽度优先遍历算法

深度优先遍历算法

C.

求关键路径的方法

求最短路径的Dijkstm方法

6

【单选题】(2分)编写算法实现建立图的邻接表StatusCreateAG(ALGraph&G){

intn,e,k,i,j;

cout<<"请输入顶点数:

";cin>>n;

cout<<"请输入边数:

";cin>>e;

G.vernum=n;

G.arcnum=e;

//建立顶点数组for(k=0;k

";cin>>G.vertices[k].data;G.vertices[k].firstarc=NULL;

}

//建立邻接表VertexTypev1,v2;ArcNode*p,*q;for(k=0;k>v1>>v2;

i=LocateVex(G,v1);if(i<0||i>G.vernum-1)returnERROR;j=LocateVex(G,v2);if(j<0||j>G.vernum-1)returnERROR;if(i==j)returnERROR;

p=newArcNode;

if(!

p)returnERROR;p->adjvex=j;

p->nextarc=NULL;

q=G.vertices[i].firstarc;

if(!

q)G.vertices[i].firstarc=p;

else{

while(q->nextarc)//指针定位于邻接表的尾结点

q->nextarc=p;

}

}

returnOK;

}

A.

q=q->nextarc

q->nextarc=p->nextarc

q->nextarc=NULL;

p=p->nextarc;

7

【单选题】(2分)

编写算法实现从邻接表中取出某个顶点V的存储位置。

intLocateVex(ALGraph&G,VertexTypev)

{

inti=0;

while(&&i

if(G.vertices[i].data==v)returni;

elsereturn-1;

A.

A.G.vertices[i++].data!

=v

B.

G.vertices[++i].data!

=v

C.

G.vertices[i].data!

=v

D.

G.vertices[i].data==v

第八章测试

1

【单选题】(2分)

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

A.

以链接方式存储,且结点按关键字有序排序

B.

以链接方式存储

C.

以顺序方式存储

D.

以顺序方式存储,且结点按关键字有序排序

2

【单选题】(2分)

2.下列描述中不符合二叉排序树特点的是()

A.左子树中所有结点的关键字小于根结点的关键字

B.根结点的关键字大于左、右子树中所有结点的关键字

C.关键字插入的顺序影响二叉排序树的形态

D.右字树中所有结点的关键字大于根节点的关键字C.

3

【单选题】(2分)

3.设哈希表长m=14,哈希函数H(key)=key%11。

表中已有4个结点:

addr(15)=4;addr(38)=5;addr(61)=6;addr(84)=7如用二次探测再散列处理冲突,关键字为49的结点的地址是()

【单选题】(2分)

4.试将折半查找的算法改写成递归算法。

Intbisearch(sqlistL,intlow,inthigh,elemtypex){

If(low>high)return(0);

else{

if(L.data[mid]==x)return(mid);

elseif(L.data[mid]>x)bisearch(L,low,mid-1,x);

elsebisearch(L,mid+1,high,x);

}//bisearch

mid=(low+high)/2

B.

A.mid<(low+high)/2

C.

mid!

=(low+high);

D.mid>(low+high)/2;

【单选题】(2分)

5.设计算法判定给定二叉树是否为二叉排序树。

voidBSTree(BiTreet,int&flag,int&last);//声明StatusIsBSTree(BiTreet)

{

intflag=1;

intlast=0;

BSTree(t,flag,last);

returnflag;

}

voidBSTree(BiTreet,int&flag,int&last)//取地址不需要返回值{if(t->lchild&&flag)BSTree(t->lchild,flag,last);//遍历左子树if(t->data.key>last&&flag)last=t->data.key;

elseflag=0;

//last原为父节点值,但到了树叶节点后被树叶节点的key值覆盖,然后开始向上反馈key

if(t->rchild&&flag)

}

BSTree(t->rchild,last,flag);

B.

BSTree(t->rchild,flag,last);

C.

BSTree(t->lchild,flag,last);

BSTree(t->lchild,last,flag);

6

【单选题】(2分)

m阶B_树中的m是指?

A.

非终端结点中关键字的个数

B.

m阶B_树的深度(或高度)

每个结点至少有m棵子树

每个结点至多有m棵子树

第九章测试

1

【单选题】(2分)

1.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。

A.45,40,15,20

B.15,40,60,20

C.15,20,40,45

D.

40,50,20,95

【单选题】(2分)

2.快速排序方法在情况下最不利于发挥其长处。

A.

要排序的数据量太大

B.

要排序的数据个数为奇数

C.

要排序的数据中含有多个相同值

D.

要排序的数据已基本有序

3

【单选题】(2分)

一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始推为()。

A.

84,79,56,38,40,46

B.

84,79,56,46,40,38

C.

84,56,79,40,46,38

79,46,56,38,40,80

4

【单选题】(2分)

设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5

个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。

A.

15,25,35,50,20,40,80,85,36,70

B.

15,25,35,50,80,20,85,40,70,36

C.

15,25,35,50,80,85,20,36,40,70

D.

15,25,35,50,80,20,36,40,70,85

5

【单选题】(2分)

L.r[1..k]

试以L.r[k+1]作为监视哨改写教科书10.2.1节中给出的直接插入排序算法。

其中,为待排序记录且k

voidInsertionSort(SqList&L){

//对顺序表L作直接插入排序。

for(i=k-1-1;i>=1;--i)

{if(L.r[i+1].key

{

L.r[k+1]=L.r[i];//复制为监视哨for(j=i+1;L.r[k+1].key>L.r[j].key;++j)L.r[j-1]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1