南大软院数据结构期末试题整理版1.docx

上传人:b****3 文档编号:3943489 上传时间:2022-11-26 格式:DOCX 页数:22 大小:40.02KB
下载 相关 举报
南大软院数据结构期末试题整理版1.docx_第1页
第1页 / 共22页
南大软院数据结构期末试题整理版1.docx_第2页
第2页 / 共22页
南大软院数据结构期末试题整理版1.docx_第3页
第3页 / 共22页
南大软院数据结构期末试题整理版1.docx_第4页
第4页 / 共22页
南大软院数据结构期末试题整理版1.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

南大软院数据结构期末试题整理版1.docx

《南大软院数据结构期末试题整理版1.docx》由会员分享,可在线阅读,更多相关《南大软院数据结构期末试题整理版1.docx(22页珍藏版)》请在冰豆网上搜索。

南大软院数据结构期末试题整理版1.docx

南大软院数据结构期末试题整理版1

软件学院2021级<<数据结构>>期终试题.12.31

姓名学号

123得分

1.填充题(36分,每空3分)

1)设有n个不同关键码的对象在排序前已按关键码由小到大排好序,用下列方法对其按关键码进行排序,需要进行比较的次数:

直接插入排序:

,快速排序。

在直接插入排序,折半插入排序,直接选择排序,.起泡排序,快速排序,归并排序中关键码比较的次数与记录的初始排序无关的排序方法有。

2)设栈S和队列Q的初始状态为空,元素a1,a2,a3,a4,a5,a6,a7,和a8依次通过栈S,一个元素出栈后立即进入队列Q,若8个元素出队列的顺序是a3,a6,a8,a7,a5,a4,a2,a1,则栈S的容量至少应该是多少(即至少应该容纳多少个元素)。

3)对有10个元素的有序表,采用二分查找,需要比较4次方可找到的元素个数为_________________。

4)在有51个结点的完全二叉树中,度为1的结点个数是____________。

5)一个具有n个顶点的无向图至多有_______________条边。

该图又称为

6)一棵AVL树T中结点的关键码均为正整数(从1开始取值),它有下列特点:

(1)删除关键码为k1的某个叶结点,然后再插入关键码k1,得到的AVL树与原

AVL树T不同;

(2)删除T中关键码为k2的非叶结点,然后再插入关键码k2,得到的AVL树与原AVL树T相同;

(3)往T中插入某个关键码k3,然后再删除k3,得到的AVL树与原AVL树T不同。

画出具有上述特点且结点个数最少的一棵AVL树。

并指出关键码k1、k2、k3的值分别是多少?

 

7)设某一二叉树的中序遍历序列为A,B,C,D,E,F,G,后序遍历序列为B,D,C,A,F,G,E,则该二叉树的先序遍历序列为______________。

8)判别以下序列是否是堆?

如果不是,将它调整为最大堆。

{12,70,33,65,24,56,48,92,86,33}

2.解答题(40分,每题10分)

1)散列表的地址区间为0-16,散列函数为H(K)=K%17,采用线性探查法处理冲突,请将关键码序列26、25、72、38、8、18、59依次存储到散列表中。

(1)元素59存放在散列表中的地址是多少?

(2)搜索元素59需要比较的次数是多少?

答:

2)下面是一棵3阶B-树。

试分别画出依次删除50、40之后的B-树。

50

306080

2040557095

答:

3)按Dijkstra方法计算下列图中从顶点1到其它顶点的最短路径。

按路径递增顺序写出先后计算出的最短路径(包括起止点和途径各点)及该路径长度。

4)给出一组实数w={15,1,4,6,12,25,7}画出以这一组实数为权的哈夫曼树。

并计算其带权的外路径长度。

答:

 

3算法题(24分,第1题10分,第2题14分)

1)已知first为不带表头结点的单链表的表头指针(如下图所示),链表中存储的都是整型数据,试写出求所有结点的data域平均值的递归函数。

datalink

first

…..

a1a2a3……annull

答:

 

2)给定一棵二叉搜索树t,其根指针为root,各结点结构为

leftdataright,left,right分别指向该结点的左、右子树,假设data域为int型。

试用Java(或C++)语言写一个程序:

给出该二叉搜索树的结点与二叉树搜索树的类说明(仅写出必要的成员变量和成员函数),并写出按由大到小的顺序输出二叉搜索树中所有不小于k的数据(k为一给定int型值)

答:

 

软件学院2005级<<数据结构>>期终试题A卷答案2006.12.31

1.填充题(36分,每空3分)

1)直接插入排序:

n-1。

快速排序:

n*(n-1)/2。

折半插入排序,直接选择排序

2)6

3)3

4)0

5)(n*(n-1))/2无向完全图

6)

3k1=1

15k2=5

k3=7

46

7)EACBDGFE

AG

CF

BD

8)最大堆为92,86,56,70,33,33,48,65,12,24

2.解答题(40分,每题10分)

1)H(26)=26%17=9H(8)=8%17=8

H(25)=25%17=8H(18)=18%17=1

H(72)=72%17=4H(59)=59%17=8

H(38)=38%17=4

012345678910111213141516

1872382526859

1121134

1)59的散列地址为11

2)搜索了4次

2)删50删40

(5分)55(5分)5580

30802030607095

2040607095

3)1225

12441

124348

1243553

4)70

2743

12151825

711

56

14

(12+15+25)*2+7*3+6*4+(1+4)*5=174

3算法题(24分,第1题10分,第2题14分)

1)classListNode

{intdata;

ListNodelink;

}

floatAverage(ListNodef,intn)1分

{if(f.link==NULL)returnf.data;3分

elsereturn(Average(f.link,n-1)*(n-1)+f.data)/n;6分

}

2)classBinaryNode

{;//构造函数

intdata;

BinaryNodeleft;

BinaryNoderight;

}2分

publicclassBinarySearchTree

{publicBinarySearchTree(){root=null;}

.

publicvoidBSTFind(BinarySearchTreet,intk);

privateBinaryNoderoot;

}2分

publicvoidBSTFind(BinarySearchTreet,intk)

{if(t)3分

{BSTFind(t.right,k);2分

if(t.data>=k)System.out.println(t.data);3分

BSTFind(t.left,k);2分

}

}

软件学院2006级<<数据结构>>期终试题2007.12.30

姓名学号

12345678得分

1.填充题(20分,每题5分)

1)树的机内表示(实现)有、、。

2)最小代价生成树有两种实现算法:

Prim算法与Kruscal算法。

两者分别适用于何种情况,。

3)采用堆排序方法将初始序列{8,23,12,5,28}按从小到大顺序排序,则建立初始堆和排序过程中序列依次变化为、、、、

4)在具有6个结点的无向简单图中,边数最少为条时,才能确保该图一定是连通图。

2.算法分析题(10分)

利用大“O”记号将下列函数在最坏情况下运行时间表示为n的函数(要求给出推导过程)

voidmystery(intn)

{for(inti=1;i<=n-1;i++)

for(intj=i+1;j<=n;j++)

for(intk=1;k<=j;k++)

}

答:

 

3.(15分,每题5分)

1)设有一字符串P=”3*y-a/y↑2”,试写出利用栈将P改为”3y*ay2↑/-”的操作步骤。

(请用X代表扫描该字符串过程中顺序取一字符进栈的操作,用S代表从栈中取出一字符加入到新字符串尾的出栈操作。

例如,要使”ABC”变为”BCA”,则操作步骤为XXSXSS)。

答:

 

2)设数组Q[m]表示一个环形队列(下标为0到m–1),rear为队列中最后一个元素的实际位置,length为队列中元素的个数,求队列中第一个元素的实际位置(要求写出计算公式)

答:

 

3)试说明一棵二叉树无论进行先序、中序或后序遍历,其叶结点的相对次序不发生改变。

答:

 

4.(10分)

对下列无向图,按照Dijkstra算法,写出从顶点1到其它各个顶点的最短路径和最短路径长度。

(顺序不能颠倒)

10

5

8

6

9

11

7

135

7

246

答:

5.(10分)

设散列表长度为11,散列函数H(K)=(K的第一个字母在英文字母表中的序

号,设A的序号为1)%11,若输入顺序为(B,D,M,CI,I,K,TM,X),处理冲突方法为线性探测法,要求:

1)构造此散列表。

2).对表中所有键值分别查找1次,求出总的比较次数。

答:

 

6.(10分,每题5分)

下列各图都是平衡二叉树,请按指定的关键码插入,分别画出插入后的平衡二叉树。

1)15

825插入56

792036

51850

 

2)MAR

AUGMAY插入FEB

(按字母顺序)

APRJANNOV

DECJULY

答:

7.(10分)

假设一棵带索引的二叉搜索树,root指向其根结点,树中每个结点具有如下形式:

Lsizeleftdataright

其中,Lsize域的值为该结点左子树中的结点个数加1;left,right分别指向该结点的左、右子树,且假设data域为int型。

试用java语言写一个递归的findk函数,即搜索这棵带索引的二叉搜索树中第K个小的关键码结点。

答:

8.(15分)

答:

软件学院2006级<<数据结构>>期终试题答案2007.12.30

1.填充题(20分,每题5分)

1)双亲表示,广义表表示、左子女—右兄弟表示

2)Prim算法适合于图中顶点少,边多的情况。

Kruscal算法适合于图中顶点多,边少的情况。

3)28,23,12,5,8、23,8,12,5,28、12,8,5,23,28、8,5,12,23,28、

5,8,12,23,28

4)11条

2.算法分析题(10分)

i:

1234………..n-1

j:

2~n3~n4~n5~n………n~n

k:

1~j

2+3+4+5+……+n

+3+4+5+……+n

+4+5+……+n

+5+……+n

+…..

+n

=2*1+3*2+4*3+5*4+……+n*(n-1)

=12+1+22+2+32+3+42+4+….+(n-1)2+(n-1)

=12+22+32+42+…..+(n-1)2+1+2+3+4+…+(n-1)

=(n-1)n(2n-1)/6+(n-1)n/2=n(n-1)(n+1)/3

=O(n3)

3.(15分,每题5分)

1)xsxxsxxsxxsxxssss

2)(rear–length+m+1)%m

3)先序:

根左子树右子树

中序:

左子树根右子树

后序:

左子树右子树根

4.(10分)

137

1211

13412

13514

13615

5.(10分)

012345678910

1)KBMDCIXITM

2)16次.

6.(10分,每题5分)

1)152)MAR

825DECMAY

792050AUGJANNOV

5183656APRFEBJULY

7.(10分)

publicBinaryNodefindk(intk,BinaryNodet)

{if(k==t.Lsize)returnt;

if(k

if(t.right==NULL)returnNULL;

elsereturnfindk(k–t.Lsize,t.right);

}

8.(15分)

{intj=start,i=j/2;

while(j>1)

{if(a[i]<=temp)break;

else{a[j]=a[i];j=i;i=i/2;}

}

a[j]=temp;

}

借助于书中MinHeap的类定义,主函数中调用格式为percUp(n).

 

 

考试科目名称数据结构(A卷)

考试方式:

开卷  闭卷  考试日期   年 月 日 教师陈珮珮

系(专业) 计算机     年级 二年级(07级)   班级    

学号            姓名          成绩     

题号

分数

得分

1.算法分析题(10分)

利用大“O”记号将下列函数在最坏情况下运行时间表示为n的函数(要求给出推导过程)

voidmystery(intn)

{for(inti=1;i<=n-1;i++)

for(intj=i+1;j<=n;j++)

for(intk=1;k<=j;k++)

}

答:

得分

2.(20分,每题5分)

1)深度为k(设根结点为1层)的二叉树上,只有度为0和度为2的结点,

则这类二叉树上所含结点总数最少为个。

至多为个。

2)设有序顺序表中的元素依次为017,094,154,170,275,503,509,512,553,612,677,765,897,908.试画出对其进行折半搜索时的判定树,并计算搜索成功的平均搜索长度。

答:

 

 

3)设有一字符串P=”3*y-a/y↑2”,试写出利用栈将P改为”3y*ay2↑/-”的操作步骤。

(请用X代表扫描该字符串过程中顺序取一字符进栈的操作,用S代表从栈中取出一字符加入到新字符串尾的出栈操作。

例如,要使”ABC”变为”BCA”,则操作步骤为XXSXSS)。

答:

4)设W为一个二维数组,其每个数据元素占用6个字节,行下标i从0到8,列下标j从0到3,则二维数组W的数据元素共占用______个字节。

W中第6行的元素和第4列的元素共占用______个字节。

若按行主顺序存放二维数组W,其起始地址为100,则二维数组W的最后一个数据元素的起始地址为______。

得分

3.(10分)

对下列无向图,按照Dijkstra算法,写出从顶点1到其它各个顶点的最短路径和最短路径长度。

(顺序不能颠倒)

10

5

8

6

9

11

7

135

7

246

答:

 

得分

4.(10分)

设散列表HT[13],散列函数为H(key)=key%13,用闭散列法解决冲突,对关键码序列{12,23,45,57,20,03,78,31,15,36}构造散列表,用线性探查法寻找下一个空位,画出散列表,并计算等概率下搜索成功的平均搜索长度ASLsucc。

答:

 

 

得分

5.(10分)

对关键码序列{23,17,12,61,26,8,70,75,53},用堆排序方法进行排序,画出排序过程中所建的初始堆,以及输出前三个关键码过程的示意图。

(要求建立的堆为任一父母结点的关键码都小于其子女结点的关键码)

答:

 

得分

6.(10分)

下列各图都是AVL树(平衡二叉树),请按指定的关键码插入,分别画出插入后的AVL树(平衡二叉树)。

2)15

925插入56

792036

51850

2)MAR

AUGMAY插入FEB

,(按字母顺序)

APRJANNOV

DECJULY

 

得分

7.(10分)

请画出往下图的5阶B-树中插入一个关键码390后得到的B-树,以及再删除关键码100后得到的B-树。

100200300400

2040150180240260310320350370420430

答:

得分

8.(10分)

以下算法是用无表头结点的循环链表解Josephus(约瑟夫)问题,请在下划线部分填上正确的语句。

nolink

其中:

n表示有n个人参加该游戏;

m表示每次报的数;

rear一开始指向循环链表的尾结点。

ListNodeJosephus(intn,intm)

{intw=m;

ListNodehead,p;

for(inti=1;i<=n-1;i++)

{for(intj=1;j<=w-1;j++)

1;

if(i==1)

{head=rear.link;p=head;}

else

{p.link=rear.link;p=rear.link;}

2;

}

3;

rear.link=NULL;

returnhead;

}

得分

9.(10分)

给定一棵二叉树t,其根指针为root,结点结构为:

leftdataright

left,right分别指向该结点的左、右子树,假设data域为int型。

试用Java或C++语言写一个程序:

给出该二叉树的类定义(仅写出必要的成员变量和成员函数),并写出判别该二叉树是否是二叉搜索树的算法。

答:

 

考试科目名称 数据结构(A卷答案)

考试方式:

开卷  闭卷  考试日期   年 月 日 教师 陈珮珮 

系(专业)  软件学院    年级 二年级(07级)   班级    

学号            姓名         成绩     

题号

分数

得分

1.算法分析题(10分)

i:

1234………..n-1

j:

2~n3~n4~n5~n………n~n

k:

1~j

2+3+4+5+……+n

+3+4+5+……+n

+4+5+……+n

+5+……+n

+…..

+n

=2*1+3*2+4*3+5*4+……+n*(n-1)

=12+1+22+2+32+3+42+4+….+(n-1)2+(n-1)

=12+22+32+42+…..+(n-1)2+1+2+3+4+…+(n-1)

=(n-1)n(2n-1)/6+(n-1)n/2=n(n-1)(n+1)/3

=O(n3)

得分

2.(20分,每题5分)

1)2*k-12k-1

2)509

154677

017275553897

094170503512612765908

AVLsucc=(1+2*2+3*4+4*7)/14=45/14

3).xsxxsxxsxxsxxssss

4).21672310=100+(8*4+3)*6

得分

3.(10分)

137

1211

13412

13514

13615

得分

4.(10分)

H(12)=12,H(23)=10,H(45)=6,H(57)=5,H(20)=7,H(03)=03,

H(78)=0,H(31)=5,H(15)=2,H(36)=10

0123456789101112

78150357452031233612

1111114121

ASLsucc=14/10=1.4

得分

5.(10分)

8121723

1712172326232661

53262370532661705375617053757017

7561758128128

得分

6.(10分)

1)152)MAR

825DECMAY

792050AUGJANNOV

5183656APRFEBJULY

得分

7.(10分)

插入390(5分)

300

100200350400

2040150180240260310320370390420430

 

删除100(5分)

200300350400

2040150180240260310320370390420430

1

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

当前位置:首页 > 高等教育 > 军事

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

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