- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构
主讲人:陈红丽
知识点回顾
二叉树的遍历算法
递归算法
非递归算法
递归遍历算法的应用
二叉树的叶子数目
二叉树的深度
二叉树的建立
线索二叉树
线索链表:增加了线索的二叉链表
线索二叉树:加上线索的二叉树
线索化:对二叉树以某种次序遍历使其变为线索二叉树的过程
线索二叉树
线索:指向某种遍历序列中的“前驱”和 “后继” 的指针
悬空?
悬空?
为避免悬空态,应增设一个头结点
例:画出以下二叉树对应的中序线索二叉树。
解:该二叉树中序遍历结果为: H, D, I, B, E, A, F, C, G
所以添加线索应当按如下路径进行:
lchild
LTag
data
RTag
rchild
存储结构:
第13讲
5.6 树和森林
实现树的存储结构,关键是什么?
如何表示树中结点之间的逻辑关系。
思考问题的出发点
如何表示结点的双亲和孩子
双亲表示法
孩子表示法
双亲孩子表示法
孩子兄弟表示法
孩子兄弟表示法 ---- 二叉链表表示法
逻辑结构
存储结构
用二叉链表作为树的存储结构。结点的两个指针域分别指向该结点的第一个孩子结点和右边的下一个兄弟结点。
typedef struct CSNode{
TElemType data;
struct CSNode * firstchild;
struct CSNode * nextsibling;
}CSNode;//结点结构
typedef CSNode * CSTree; //树
存储结构
二叉链表表示法
长兄为父
C
F
K
H
G
B
R
A
D
E
二叉树
1.加线
兄弟相连
2.删线(保留双亲与第一孩子连线,删去与其他孩子的连线)
3.调整(顺时针转动,使之层次分明)
孩子靠左
树与二叉树的转换
练习题:请把下图的树转换成相应的二叉树。
图1
图2
讨论:二叉树怎样还原为树?
左孩右右连双亲,去掉原来右孩线
要点:树变二叉逆操作,把所有右孩子变为兄弟
树和二叉树的转换
树变二叉--兄弟相连留长子,孩子靠左
二叉变树--左孩右右连双亲,去掉原来右孩线
森林和二叉树的转换
森林变二叉--树变二叉留头根
(a)森林
(b)每棵树对应的二叉树
(c)头根为根
(d)整理,
最终二叉树
要点:把最右边的子树变为森林,其余右子树变为兄弟
练习题: 请画出和下列二叉树对应的森林。
E
I
J
F
A
D
C
G
树的遍历
先根、后根
层次
先根遍历
树非空,则
访问根结点;
按照从左到右依次先根遍历根结点的每棵子树
后根遍历?
树没有中序遍历(因子树不分左右)
A
C
B
G
F
E
D
H
I
先根遍历序列:
后根遍历序列:
A B D E H I F C G
D H I E F B G C A
树与转换的二叉树的遍历的对应关系?
树的遍历
先根遍历序列:
后根遍历序列:
A B D E H I F C G
D H I E F B G C A
树与转换的二叉树的遍历的对应关系?
树的遍历
I H F E D G C B A
A B D E H I F C G
D H I E F B G C A
森林的2种遍历方法:
先序遍历森林:若森林非空,则依次从左至右对森林中的每一棵树进行先根遍历。
中序遍历森林:若森林非空,则依次从左至右对森林中的每一棵树进行后根遍历。
结论:
森林的先序遍历序列与转换后的二叉树的先序遍历序列相同
森林的中序遍历序列与转换后的二叉树的中序遍历序列相同
森林的遍历
5.7 哈夫曼树及其应用
在远程通讯中,要将待传字符转换成二进制的字符串,怎样编码才能使它们组成的报文在网络中传的最快?
待传输的报文: CATCATTCPPCTCAC
等长编码:C:00 A:01 T:10 P:11
报文为:“000110000110100011110010000100”
不等长编码:C:0 A:00 T:1 P:01
报文为:“00010001100101010000”
C
A
T
P
6
3
4
2
频率越大编码越短
CATCATTCPPCTCAC
0001100101010000
C:0 A:00 T:1 P:01
要设计不等长编码,则必须使任一字符的编码都不是另一个字符的编码的前缀
----前缀编码
0
1
0
0
C
C
P
A
P
结点的带权路径长度:从该结点到树根之间的路径长度与结点上权的乘积。
树的带权路径长度:树中所有叶子结点的带权路径长度之和。记作:WPL= ?wk ? Lk (k=1.. n)
哈夫曼
您可能关注的文档
最近下载
- 电力市场交易软件:Energy Exemplar PLEXOS二次开发_7.运行模拟与案例分析.docx VIP
- 煤矿新技术新工艺新设备和新材料课件课件.ppt VIP
- Starter Unit 3 Welcome! (单元解读课件)七年级英语上册(人教版2024).ppt
- 初中七年级(下册) 语文文言文阅读训练试题整理含答案.pdf VIP
- 05N5 热力工程(工程图集).docx VIP
- 电力系统优化与调度软件:PLEXOS二次开发_(16).电力系统规划与运营.docx VIP
- 电力市场分析软件:PLEXOS二次开发_(2).电力市场建模基础.docx VIP
- PCS7-DOSE块使用方法详解.pdf VIP
- 电力系统优化与调度软件:PLEXOS二次开发_(4).电力系统优化理论.docx VIP
- KSFWAY知识竞赛试题含答案.doc VIP
文档评论(0)