《数据结构教学资料》410章复习资料docWord格式.docx

上传人:b****6 文档编号:18223066 上传时间:2022-12-14 格式:DOCX 页数:19 大小:575.04KB
下载 相关 举报
《数据结构教学资料》410章复习资料docWord格式.docx_第1页
第1页 / 共19页
《数据结构教学资料》410章复习资料docWord格式.docx_第2页
第2页 / 共19页
《数据结构教学资料》410章复习资料docWord格式.docx_第3页
第3页 / 共19页
《数据结构教学资料》410章复习资料docWord格式.docx_第4页
第4页 / 共19页
《数据结构教学资料》410章复习资料docWord格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《数据结构教学资料》410章复习资料docWord格式.docx

《《数据结构教学资料》410章复习资料docWord格式.docx》由会员分享,可在线阅读,更多相关《《数据结构教学资料》410章复习资料docWord格式.docx(19页珍藏版)》请在冰豆网上搜索。

《数据结构教学资料》410章复习资料docWord格式.docx

6*(6+1)/2+5=26

2.

稀疏矩阵的压缩存储一十字链表

2.—维数组具有线性表的结构,操作简单,一般不进行插入和删除操作,只定义给定卜-标读取元素和修改元素的操作.二维数组屮,每个数据元素对应一对数组下标,在行方向上和列方向上都存在一个线性关系,即存在两个前驱和两个后继。

也可看作是以线性表为数据元素的线性表。

n维数组中,每个数据元素对应n个下标,受n个关系的制约,其中任一个关系都是线性关系。

町看作是数据元素为维数组的一维数组。

因此,多维数组和广义表是对线性表的扩展:

线性表中的数据元索本身乂是一个多层次的线性表。

◎课后思考题及解答:

1.2.

练习:

L=(a,(x,y),((x)))

画出矩阵的十字链表。

((x,y),((x)))

0-1

(少如

()

y())

X()

3.

1

3

2

4

()]

6丿

画出矩阵X的三元组表和十字链表。

4•广义表F=((((a),b)),(((),(d)),(e,f)))画出其图形表示及存储结构。

5广义表G=(((a,b,()),(),(a,(b))),())画出其图形表示及存储结构。

6.假设有二维数组elemtypea[6][8];

毎个数据元素占6个字节,存储器按字节编址。

a的基地址为1000,则:

⑴数组a的体积;

(2)数组a的最后一个元素的第一个字节的地址;

⑶按行存储时,a[2,4]的第一•个字节的地址;

⑷按列存储吋,a[2,4]的第一个字节的地址;

第六章树和二叉树

◎木章小结:

1、树的几个基本术语:

树,结点和树的度,分支结点,叶子结点,结点的层次,树的深度等

2、树的4种表示:

树形表示,文氏图表示,凹入表示法、嵌套括号表示法

3、树的性质

4、树的存储结构:

顺序存储和链式存储

5、树的遍历:

先根遍历、后根遍历、层次遍历

二叉树

1>二义树的儿个基本术语:

二义树、满二义树、完全二叉树

2、二叉树的性质

3、二叉树的存储结构:

4、线索二叉树

5、二叉树的3种遍历:

先序遍历、中序遍历、后序遍历、(层序遍历)

树和森林

1、树与二叉树的相互转换

2、森林与二叉树的相互转换

赫夫曼树

1、赫夫曼树的定义

2、构造赫夫曼树的算法

3、赫夫曼编码

◎课堂笔记及重要知识点:

1.

树.?

—-O二义树

2.树转换为二叉树的步骤:

加线:

在兄弟结点之间加一连线;

抹线:

对任何结点,除了其最左的孩了外,抹掉该结点原先与其他孩了之间的连线;

旋转:

将水平的连线和原有的连线,以树根结点为轴心,按顺时针方向粗略地旋转450。

3.二叉树还原成树的步骤:

如果某结点是双亲结点的左孩了;

则将该结点的右孩了,右孩了的右孩了,……,沿着右分支搜索到的所有右孩子都分别与该结点的双亲用线连接起來;

抹掉原二叉树中所有结点与其右孩了的连线;

调整:

将结点按层次排列,形成树的结构.

4.森林转换成二叉树的步骤:

转换:

将森林中的每一颗树转换成二叉树;

连线:

将各棵转换后的二叉树的根结点相连;

将添加的水平线和原有的连线,以第一•颗树的根结点为轴心,按顺时针方向旋转450o

5.森林转化成二叉树的规则

若森林F为空,即n=0,则对应的二叉树B为空二叉树。

若F不空,贝IJ对应二义树B的根root(B),是F中笫一棵树T1的根root(T1);

其左子树为LB,是由root仃:

L)的子树森林{TLL,T12,…,Tim}转换而来的;

其右了树为RB,是由除T1外其它树构成的森林{T2ZT3,…,Tn}转换而来的。

6.二叉树转换为森林的规则

如果B为空,则对应的森林F也为空。

如果B非空,贝I」F中笫一棵树T1的根root(T1),是二叉树B的根root(B);

T1的根的子树森林{Til,T12,-zTlm},是由root的左子树LB转换而来;

F中除了T1之外其余的树组成的森林{T2,T3,-,Tn},是由root的右子树RB转换而来。

7.森林的遍历

O森林的先序遍历

若森林不空,则

1•访问森林中第一棵树的根结点;

2.先序遍历森林中笫一棵树的子树森林;

3.先序遍历森林屮(除第一棵树之外)其余树构成的森林。

O森林的小序遍历

1.中序遍历森林中第一棵树的了树森林;

2.访问森林中第一棵树的根结点;

3.

中序遍历森林屮(除第一棵树之外)其余树构成的森林。

29

可以证明:

13

16

哈夫曼树是试优树!

([

)(

V

/

7

例如:

已知权值W={5,6,2,7,7,7}

⑤⑥②⑦⑦⑦

已知权值W={5,6,2,9,7}

=18+7X10=8«

C5J(

\VPL=6X2+7X2+5X3+2X3+9X2=65

举例:

1•已知菜系统在通讯联络中只可能出现八种字符A,B,C,D,E,F,G,H,其概率分别为:

0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11试设计赫夫曼编码.

设权w={5,29,7,&

14,23,3,11}

ABCDEFGH

0110011111101111

2.数据文件压缩:

已知一个由A,B,C,D,E£

G,H等八个字符组成的文件包含10000个字符,如果对这八个字符都

按等长编码:

000,001,010,011,100,101,110,111

则文件包含的总位数为:

10000X3=30000位

现12知八个字符在文件屮出现的频率分别为:

0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11

如果采用赫夫曼编码:

0110,10,1110,1111,110,00,0111,010

则文件的总位数为:

(4X0.05+2X0.29+4X0.07+4X0.08+3X0.14+2X0.23+4X0.03+3

X0.11)X10000=27100位

压缩率为:

9.67%

1、一-棵度为2的树与一-棵二叉树有何区别?

2、已知用一维数组存放的一棵完全二叉树:

ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。

3、假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请写出该二叉树的后序遍历序列。

4、给定一组权值(5,9,11,2,7,16),试设计相应的哈夫曼树。

5、给定一棵用二叉链表表示的二叉树,其屮的指针t指向根结点,试写出从根开始,按层次遍历二叉树的算法,同层的结点按从左至右的次序访问。

O算法题:

1、顺序存储方式的二叉树的建立算法。

2、已知先根序列,递归建立的二叉树,要求输入的序列字数要补齐。

3、已知二叉树的中根序列和先根序列,构造建立相应的二叉链表。

4、二叉树的遍历算法(利用递归和非递归算法完成前序、中序、后序的遍历)。

第七章图

练习:

1丽出有向图G的邻接矩阵

练习;

I

■邻接农.逆邻接农。

✓/V■CCCC、

简mi训路:

3>

5.6・3

路径:

I.

5.

7,6.5.2

路径长度:

L

5-7.6

m:

r

2>

&

7,6>

5,2

简单冋Wh

3.I

1>

2.3.5>

6.3s

简单路径:

1.2.3.5阿路:

2>

3>

仏6,3,1

012345邻接表

012345逆邻接表

画出有向图G的十字链表。

0Vi|

1V2匚

2V3j-

3呵|-

f

4Vs

A

30AJ

12A|-P1I3AA

23

a|

・3

AA

imitB卜面有向图的DFS±

成树与BFS生成树。

DFS生成栉.・・・・・•

@(vs)•・・・・・/BFS生成树

/•••••■■®

(3)@

©

€)

画出从顶点W开始的DFS与BFS牛成森林。

利用普里姆算法建立最小生成树

(a)无向网

D,i

10

5

(e)选取(B、F)

(f)选取(B、C)

(g)选取(E、F)

应用克鲁斯卡尔算法构造最小生成树的过程

(h)

(f)

(g)

利用Prim算法、Kruskal算法构造放小生成树<

>

®

22O2©

@121。

…①1®

结果:

22O©

11

1O1®

彳列:

对如下AOE网,求出各活动的最早开始时间e(i)和最迟开始时间l(i)。

问:

工程完成的最短时间是多少?

哪些活动是关键活动?

并画出关键路径。

答:

活动

31

a2

a】

34

a5

a6

a7

a8

a9

a〕o

an

a>

a.i

C

6

12

15

17

19

22

9

20

1-C

工程完成的最短时间为:

a2+a4+a8+a12+a14=24

1、已知一个无向图的邻接表如图所示,试写出从顶点0出发分別进行深度优先和广度优先搜索遍历得到的顶点序列。

2、编写一个算法,求出邻接矩阵表示的无向图小序号为numb的顶点的度数。

intdegreel(Graph&

ga,intnumb)

3、下图给出了一个具冇15个活动、□个事件的工程的AOE网,求关键路径

例:

若从空树出发,经过•系列的查找插入Z后,可生成-棵二义排疗树;

设关键字庁列为{45,24,

53.12,24,90},则生成的二叉排序树如下:

f45

I續

f一绞

49

45

f咨53

f^4

5S

^4f-53

90

二叉排序树的一些特性:

(1)中序遍历二叉排序树可得到一个关键字的有序序列。

(2)在构造二叉排序树屮,在进行插入新结点操作时,不必移动其它结点,仅需改动某个结点的指针,由空变为非空即可。

(3)二叉排序树既拥冇类似于折半杳找的特性,乂采用了琏表作为存储结构,是动态查找表的一种适宜表示。

1、画出对长度为10的有序表进行折半查找的判定树,并求出等概率时杳找成功的平均查找长度。

2、有关键字序列{38,52,25,74,68,16,30,54,90,72};

(1)构造它的二叉排序树;

(画出构造过程)

(2)构造它的平衡二叉排序树;

(画出构造、调整过程)

⑶分别求出上述二叉排序树和平衡二叉排序树的平均查找长度。

3.在地址空间为0-13的散列区小,对以下关键字序列构造两个哈希表:

(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)

(1)用线性探测开放定址法处理冲突;

⑵用链地址法处理冲突;

⑶求出以上两个哈希表在等概率情况下,查找成功、杏找不成功时的平均杏找长度(不成功时用公式计算)。

设哈希函数为H(key)=|key的笫一个字母在字母表的序号/2|

第十章内排序

排序的基本概念

排序的基木概念关键字、初始关键字排列关键字比较次数、数据移动次数

稳定性附加存储

插入排序

宜接插入排序、折半插入排序的过程

直接插入排序和折半插入排序的算法

排序的性能分析

当待排序的关键字序列已经基本有序时,用直接插入排序最快

选择排序

肯接选择排序、锦标赛排序、堆排序的过程

直接选样排序和堆排序的算法

三种选择排序的性能分析

用直接选择排序在一个待排序区间中选出最小的数据时,与区间第一个数据对调,不是顺次后移。

这导致方法不稳定。

交换排序

起泡排序和快速排序的过程

起泡排序的算法

快速排序的递归算法和用栈实现的非递归算法

快速排序是一个递归的排序法

当待排序关键字序列己经基木有序吋,快速排序显箸变慢。

二路归并排序

二路归并排序的过程

二路归并排序的非递归算法

该算法的性能分析

归并排序可以递归执行

归并排序需要较多的附加存储。

归并排序对待排序关键字的初始排列不敏感,故排序速度较稳定。

排序的分类

将欲处理的记处全部心放到内心中排庁,数UWJ被随机存取

插入式排序

内部排序

交换式排序选择式排序归并排序展数排序

待排序的记录太多,不能同时存放内存中,排序过程盂要借助外存(比如:

硬盘)来

I定成,记录碍要在内存和外存间移动。

外部排序厶—

比较标准

•时间复杂度

•空间父杂度

•稳定性

稳定性排圧过后能使关键字相等的记

录保持原顺序中的相对位汽

4?

32

56

27

不稳定性排序过麻不能使关键字相等的

记录保持原顺序中的相对位代

各种排序算法的性能比较

排序方法

最好时何

半均时何

放坏时何

输助空间

稳定性

11接插入川

O(n)

O(m)

0

(2)

0

(1)

稳定

希尔排序

0(n13)

不稳定

£

接选择排序

O(n2)

0("

堆井序

O(nlog2n)

H泡排序

0(”)

快速排序

O(log2n)

归并排序

O(nlog?

n)

基数井序

O(mn)

q(n)

1、已知一组记录为

(46,74,53,14,26,38,86,65,27,34),给出采用下列排序时每一趟的排序结果:

1)直接插入排序2)快速排序法3)归并排序法

2、试以单链表为存储结构实现简单选择排序的算法。

复习题

选择题

1.一棵具有n个结点的完全二叉树的树高度(深度)是(A)

A)Llog2n」+lB)log2n+1C)Llog2n」D)log2n-l

2.有关二叉树下列说法正确的是(B)

A)二叉树的度为2B)-棵二叉树的度可以小于2

C)二叉树中至少有一个结点的度为2D)二叉树中任何一个结点的度都为2

3.二义树的第I层上最多含有结点数为(C)

A)21B)2,x-lC)21'

1D)2'

-1

4.具有10个叶结点的二叉树中有(B)个度为2的结点

A)8B)9C)10D)11

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

(D)

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

6.引入二义线索树的目的是(A)

A)加快查找结点的前驱或后继的速度B)为了能在二叉树中方便的进行插入与删除

C)为了能方便的找到双亲D)使二叉树的遍历结果惟一

判断题

1.二义树是度为2的有序树()

2.完全二叉树一定存在度为1的结点()

3.深度为K的二叉树中结点总数()

4.完全二叉树屮,若一个结点没有左孩子,则它必是树叶()

5.用二叉链表存储n个结点的二叉树时,结点的2n个指针中有n+1个空指针()

6.完全二叉树的存储结构通常采用顺序存储结构()

应用题

1、己知一棵二义树的后序遍历序列为DABEC,中序遍历序列为DEBAC,写出它的先序遍历序列。

2、己知一棵二叉树的中序序列和后序序列分别为GLDHBEIACJFK和LGHDIEBJKFCA

(1)给出这棵二义树;

(2)转换为对应的森林。

3、设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。

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

当前位置:首页 > 人文社科 > 教育学心理学

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

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