数据结构期末测试Word文档下载推荐.docx

上传人:b****3 文档编号:18201649 上传时间:2022-12-14 格式:DOCX 页数:10 大小:98.75KB
下载 相关 举报
数据结构期末测试Word文档下载推荐.docx_第1页
第1页 / 共10页
数据结构期末测试Word文档下载推荐.docx_第2页
第2页 / 共10页
数据结构期末测试Word文档下载推荐.docx_第3页
第3页 / 共10页
数据结构期末测试Word文档下载推荐.docx_第4页
第4页 / 共10页
数据结构期末测试Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据结构期末测试Word文档下载推荐.docx

《数据结构期末测试Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构期末测试Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

数据结构期末测试Word文档下载推荐.docx

A.O(log2n)B.O(2n)C.O(n2)D.O(n)

3.__A__又称为FIFO表。

A.队列B.散列表C.栈D.哈希表

4.若6行8列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个

存储单元,则第5行第3列的元素(假定无第0行第0列)的地址是___C_。

A.1086B.1032C.1068D.答案A,B,C都不对

6.有n(n>

0)个结点的完全二叉树的深度是__C__。

A.log2(n)B.log2(n)+1

C.log2(n+1)D.log2(n)+1

或者:

log2(n)+1

8.折半查找有序表(6,15,30,37,65,68,70,72,89,99),若查找元素37,需依次与表中元素___D_进行比较,。

A.65,15,37B.68,30,37

C.65,15,30D.65,15,30,37

9.对长度为10的表作选择(简单选择)排序,共需比较__A__次关键字。

A.45B.90C.55D.110

10.对n个元素的表作快速排序,在最坏情况下,算法的时间复杂度为__B__。

A.O(log2n)B.O(nlog2n)C.O(n2)D.O(2n)

二、填空(每空1分,共11分)

1.一个数据结构在计算机中的表示(映象)称为___存储结构(数据的物理结构)___。

2.线性表中(元素的个数)称为表的长度。

3.栈中元素的进出原则为____先进后出______。

4.设数组A[1..10,1..8]的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素A[4,5]的存储地址为_____;

若以列序为主序顺序存储,则元素A[4,5]的存储地址为______。

5.一棵深度为6的满二叉树有__63__个非终端结点。

6.若一棵二叉树中有8个度为2的结点,则它有__17___个叶子。

7.顺序查找n个元素的顺序表,当使用监视哨时,若查找成功,比较关键字的次数至少为__1__次,最多为__n-1__次;

若查找失败,比较关键字的次数为_n___次。

三、回答下列问题(每小题5分,共10分)

1.线性表的存储结构,在什么情况下采用顺序结构?

为什么?

答:

多查询,少插入、删除时;

因为顺序结构在查询时时间复杂度比链式结构的时间复杂度低!

 

2.二叉树有哪几种基本形态?

画图说明之。

答:

5种!

四、试画出下列存储结构图(每小题4分,共20分)

1.数组A[0..2,0..2]的以列序为主序的顺序存储结构。

{

{a[0][0],a[1][0],a[2][0]},

{a[0][1],a[1][1],a[2][1]},

{a[0][2],a[1][2],a[2][2]}

}

2.依次将元素A,C,D,B插入一个初始状态为空的链式栈中,试画出所有插入完成之后的链式栈。

3.二叉树的顺序存储结构:

A

C

B

D

E

G

F

01234567891011

4.图的邻接矩阵:

0111

1011

1101

1110

5.有向图的逆邻接表:

五、求解下列问题(每小题6分,共24分)

1.给定30个字符组成的电文:

DDDDDAAABEEAAFCDAACABBCCCBAADD

试为字符A、B、C、D、E、F设计哈夫曼(Huffman)编码。

(1)画出相应的哈夫曼树;

A:

0.33B:

0.13C:

0.17D:

0.27

E:

0.07F:

0.03

(2)分别列出A、B、C、D、E、F的哈夫曼码;

10

B:

O11

C:

O0

D:

11

0110

F:

0111

(3)计算该树的带权路径长度WPL

WPL=(1+2)*4+4*3+(5+10+8)*2=70

2.试按表(10,8,9,12,20,5,6,15,19,25)中元素的排列次序,将所有元素插入一棵初始为空的二叉排序树中,使之仍是一棵二叉排序树。

(1)试画出插入完成之后的二叉排序树;

(2)若查找元素17,它将依次与二叉排序树中哪些元素比较大小?

10、12、20、15、19

(3)假设每个元素的查找概率相等,试计算该树的平均查找长度ASL。

ASL=(1+2*2+3*3+4*3+5)/10

(4)对该树进行中序遍历,试写出中序遍历序列。

5、6、8、9、10、12、15、19、20、25

3.试将森林F={T1,T2,T3,T4}转换为一棵二叉树。

T1T2T3T4

4.找出下面网络的最小生成树。

六、填空题(在算法中有下划线____的位置填空,使之成为完整、正确的算法)

算法说明:

已知r[1..n]是n个记录的递增有序表,用折半查找法查找关键字为k的记录,若查找失败,则输出”Failure”,返回零;

否则输出”Success”,并返回该记录的序号值。

(共8分)

算法(C函数):

intbin_search(structarecordr[],intn,k:

keytype)

/*r[1..n]为n个记录的递增有序表,k为关键字*/

{intlow,mid,hig;

low=1;

hig=n;

/*各变量初始化*/

while(__low<

=high__)

{mid=___(low+high)/2______________;

if(k<

r[mid].key)____high=mid-1_____;

elseif(__k==r[mid].key__________)

{printf(“%s,%d”,”success”,mid+1)_;

break__________;

}

else__low=mid+1____________;

if(__low>

high_____________)

___printf(“Failure”)______________;

return

七、算法设计(算法中必须有注释,每小题8分,共16分)

1.设n个元素的线性表顺序存储在一维数组st[1..maxlen]的前n个位置上,试将新元素e插入表中第i-1个和第i个元素之间,写出算法。

参考:

P22

2.设Head为带表头结点的单链表的头指针,试写出算法:

若为非空表,则输出首结点和尾结点的值(data值);

否则输出:

”Emptylist!

”。

2.3

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

当前位置:首页 > 解决方案 > 学习计划

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

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