全国自考数据结构试题课程代码02331资料Word格式文档下载.docx

上传人:b****6 文档编号:21594545 上传时间:2023-01-31 格式:DOCX 页数:10 大小:33.12KB
下载 相关 举报
全国自考数据结构试题课程代码02331资料Word格式文档下载.docx_第1页
第1页 / 共10页
全国自考数据结构试题课程代码02331资料Word格式文档下载.docx_第2页
第2页 / 共10页
全国自考数据结构试题课程代码02331资料Word格式文档下载.docx_第3页
第3页 / 共10页
全国自考数据结构试题课程代码02331资料Word格式文档下载.docx_第4页
第4页 / 共10页
全国自考数据结构试题课程代码02331资料Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

全国自考数据结构试题课程代码02331资料Word格式文档下载.docx

《全国自考数据结构试题课程代码02331资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国自考数据结构试题课程代码02331资料Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

全国自考数据结构试题课程代码02331资料Word格式文档下载.docx

C.(front-rear+m)%mD.(rear-front)%m

5.下列关于顺序栈的叙述中,正确的是

A.入栈操作需要判断栈满,出栈操作需要判断栈空

B.入栈操作不需要判断栈满,出栈操作需要判断栈空

C.入栈操作需要判断栈满,出栈操作不需要判断栈空

D.入栈操作不需要判断栈满,出栈操作不需要判断栈空

6.A是一个10×

10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a0,0的存储地址为1,每个元素占一个存储单元,则a7,5的地址为

A.25B.26

C.33D.34

7.树的后序遍历等价于该树对应二叉树的

A.层次遍历B.前序遍历

C.中序遍历D.后序遍历

8.使用二叉线索树的目的是便于

A.二叉树中结点的插入与删除B.在二叉树中查找双亲

C.确定二叉树的高度D.查找一个结点的前趋和后继

9.设无向图的顶点个数为n,则该图边的数目最多为

A.n-lB.n(n-1)/2

C.n(n+1)/2D.n2

10.可进行拓扑排序的图只能是

A.有向图B.无向图

C.有向无环图D.无向连通图

11.下列排序方法中稳定的是

A.直接插入排序B.直接选择排序

C.堆排序D.快速排序

12.下列序列不为堆的是

A.75,45,65,30,15,25B.75,65,45,30,25,15

C.75,65,30,l5,25,45D.75,45,65,25,30,15

13.对线性表进行二分查找时,要求线性表必须是

A.顺序存储B.链式存储

C.顺序存储且按关键字有序D.链式存储且按关键字有序

14.分别用以下序列生成二叉排序树,其中三个序列生成的二叉排序树是相同的,不同

的序列是

A.(4,1,2,3,5)B.(4,2,3,l,5)

C.(4,5,2,1,3)D.(4,2,1,5,3)

15.下列关于m阶B树的叙述中,错误的是

A.每个结点至多有m个关键字

B.每个结点至多有m棵子树

C.插入关键字时,通过结点分裂使树高增加

D.删除关键字时通过结点合并使树高降低

非选择题部分

用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

二、填空题(本大题共10小题,每小题2分,共20分)

16.数据元素之间的逻辑关系称为数据的______结构。

17.在线性表中,表的长度定义为______。

18.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1、2、3、4,为了得到

1、3、4、2的出栈顺序,相应的S和X的操作序列为______。

19.在二叉树中,带权路径长度最短的树称为______。

20.已知广义表G,head(G)与tail(G)的深度分别为4和6,则G的深度是______。

21.一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符'd'的哈夫曼编码的长度为______。

22.在一个具有n个顶点的无向图中,要连通全部顶点至少需要______条边。

23.直接选择排序算法的时间复杂度是______。

24.对于长度为81的表,若采用分块查找,每块的最佳长度为______。

25.用二叉链表保存有n个结点的二叉树,则结点中有______个空指针域。

三、解答题(本大题共4小题,每小题5分,共20分)

26.假设Q是一个具有11个元素存储空间的循环队列(队尾指针指向队尾元素的下一

个位置,队头指针指向队头元素),初始状态Q.front=Q.rear=0;

写出依次执行

下列操作后头、尾指针的当前值。

a,b,c,d,e,f入队,a,b,c,d出队;

(1)Q.front=______;

Q.rear=______。

g,h,i,j,k,l入队,e,f,g,h出队;

(2)Q.front=______;

M,n,o,P入队,i,j,k,l,m出队;

(3)Q.front=______;

27.已知一个无向图如题27图所示,以①为起点,用普里姆(Prim)算法求其最小生成树,画出最小生成树的构造过程。

28.用归并排序法对序列(98,36,-9,0,47,23,1,8)进行排序,问:

(1)一共需要几趟归并可完成排序。

(2)写出第一趟归并后数据的排列次序。

29.一组记录关键字(55,76,44,32,64,82,20,16,43),用散列函数H(key)=key%11将记录

散列到散列表HT[0..12]中去,用线性探测法解决冲突。

(1)画出存入所有记录后的散列表。

(2)求在等概率情况下,查找成功的平均查找长度。

四、算法阅读题(本大题共4小题,每小题5分,共20分)

30.顺序表类型定义如下:

#defineListSize100

typedefstruct{

intdata[ListSize];

intlength;

}SeqList;

阅读下列算法,并回答问题:

voidf30(SeqList*L)

{inti,j;

i=0;

while(i<

L->

length)

if(L->

data[i]%2!

=0)

{for(j=i+1;

j<

length;

j++}

L->

data[j-1]=L->

data[j];

length--;

}

elsei++

(1)若L->

data中的数据为(22,4,63,0,15,29,34,42,3),则执行上述算法后L->

data中的数据以及L->

length的值各是什么?

(2)该算法的功能是什么?

31.有向图的邻接矩阵类型定义如下:

#defineMVN100

∥最大顶点数

typedefintEType;

∥边上权值类型

typedefstruct{

ETypeedges[MVN][MVN];

∥邻接矩阵,即边表

intn;

∥图的顶点数

}MGraph;

∥图类型

例如,一个有向图的邻接矩阵如下所示:

阅读下列算法,并回答问题:

Voidf31(MGraphG)

{

Inti,j,k=0;

Step1:

for(i=0;

i<

G.n;

i++)

for(j=0;

j++)

if(G.edges[i][j]==1)k++;

printf(“%d

n”,k);

step2:

{k=0;

}

(1)stepl到step2之间的二重循环语句的功能是什么?

(2)step2之后的二重循环语句的功能是什么?

32.阅读下列算法,并回答问题:

voidf32(intr[],intn)

{

Inti,j;

for(i=2;

i<

n;

i++)

{r[0]=r[i];

j=i-l;

while(r[0]<

r[j])

{r[j+l]=r[j];

j=j-1;

r[j+l]=r[0];

}

(1)这是哪一种插入排序算法?

该算法是否稳定?

(2)设置r[0]的作用是什么?

33.顺序表类型定义如下:

typedefintSeqList[100];

voidf33(SeqListr,intn)

{inta,b,i;

if(r[0]<

r[1])

{a=r[0];

b=r[1];

>

else{a=r[1];

b=r[0];

if(r[i]<

a)a=r[i];

elseif(r[i]>

b)b=r[i];

printf("a=%d,b=%d。

n",a,b);

(1)给出该算法的功能;

(2)给出该算法的时间复杂度。

五、算法设计题(本题10分)

34.二叉树的存储结构类型定义如下

typedefstructnode{

intdata;

structnode*lchild,*rchild;

}BinNode;

typedefBinNode*BinTree;

编写递归算法,求只有一个孩子结点的结点总数,并计算这些结点的数据值的和。

函数的原型为:

voidf34(BinTreeT,int*count,int

*sum)

*count和*sum的初值为0。

一、单项选择题

1.( 

 

) 

2.( 

)3.( 

)4.( 

)5.( 

)6.( 

)7.( 

)8.( 

)9.( 

10.( 

)11.( 

)12.( 

)13.( 

14.( 

)15.( 

二、填空题(本大题共10小题,每空2分,共20分)

16.存储结构

17.q=p->

pre;

q->

pre->

next=p;

p->

pre=q->

free(q);

18.栈空

19."

DEFG"

//注意双引号不能少

20.表尾

21.2^(I-2)+M/2叶子结点.

22.入度

23.基数

24.同义词

25.已有m个同义词记录

26.

(1)quelen==m

(2)quelen==0

(3)(13-19+40)%40=34

(4)(rear-quelen+m)%m

27.

B

\

F

/\

G

/

C

D

28.3个:

a、bce、dfg

29. 

我们知道,对n个关键自序列进行一趟快速排序,要进行n-1次比较,

也就是基准和其他n-1个关键字比较。

这里要求10次,而7-1+2*(3-1)=10,这就要求2趟快速排序后,算法结束。

所以,列举出来的序列,要求在做partition的时候,正好将序列平分

(1)4132657 

或4137652

或4537612

或4135627.......

(2)自己列吧:

30. 

(1)L=(3,7,11,14,15,20,51)

(2)L=(4,7,14,20,51)

(3)在顺序表L中查找数x,

找到,则删除x,

没找到,则在适当的位置插入x,插入后,L依然有序.

31. 

(1)FALSE//初始化为未访问

(2)DSFTree(G,p->

adjvex);

//从相邻结点往下继续深度搜索

(3)p=p->

next;

//下一个未访问的相邻结点

32.

(1)L={0,1,2,3,4,5,6,7};

(2)5次

33. 

(1)NULL 

//初始化

(2)p->

next=H[j]//和下面一句完成头插法

(3)p=q;

//继续遍历L

五、算法设计题(本大题10分)

34.

1) 

a)*px有右孩子,则其右孩子为其中序序列中的后继

b)*px无右孩子,从*px开始回溯其祖先结点,找到第1个身份为左孩子的结点,

找到,则该结点的父结点为*px的中序序列中的后继。

找不到,则无后继。

2)

BinTNode*fintNext(BinTNode*px)

if(px->

rchild)returnpx->

rchild;

//*px有右孩子

BinTNode*q,*qp;

q=px;

while(qp=q->

parent){//未回溯到根结点

if(qp->

lchild==q)returnqp;

//找到1)b)所述结点

q=qp;

//往上回溯

returnNULL;

//未找到

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

当前位置:首页 > 总结汇报 > 实习总结

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

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