哈夫曼树的构造
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
45
0
1
19
0
1
26
0
1
9
10
11 15
A0
1 B0
1
55
7
8
C 0
1D
E
2
3
F
G
谢谢学习
主讲教师:尹红丽
0
1
a
0
1
c
0
1
b
d
约定左分支表示字符‘0’
右分支表示字符‘1’
3
哈夫曼编码
例:一组字符{A, B, C, D, E, F, G}出现的频率分别是{9, 11, 5, 7, 8, 2, 3},
设计最经济的编码方案。 编码:
A: 00 B : 10 C : 010 D: 110 E : 111 F : 0110 G : 0111
ABCD 00 01 10 11
不等长编码: 为了缩短传送信息的总长度,让出现频率高的字符具有
较短的编码,出现频率低的字符具有较长的编码
ABCD
1 10 0 01 发送:A B A C C C C D A B
1 10 1 0 0 0 0 01 1 10—长度为13 1101可以译为AACA、ABA、AAD 为此引入前缀编码的概念
2 34 7
2
3 47
7
4 23
WPL=2×2+3×2+4×2+7×2 =32
WPL=2×1+3×2+4×3+7×3 =41
WPL=2×3+3×3+4×2+7×1 =30
特点:权值越大的叶子结点越靠近根结点,权值越小的叶子结点越远离根结点。
2 哈夫曼树的构造
给定4个叶子结点,其权值分别为{2,4,5 ,3} 构造一棵哈夫曼树
《数据结构》 课程 哈夫曼树及其应用
主讲教师:尹红丽
目录 CONTENTS
1 哈夫曼树的定义 2 哈夫曼树的构造 3 哈夫曼编码
1
哈夫曼树的定义
路径:从一个结点到另一个结点间的分支
路径长度:路径上的分支数目。 A→E的路径长度=2
结点的权:结点被赋予的有着某种意义的实数
A
B
C
结点的带权路径长度:从根到该结点间的路径长度与该 D
第1步:初始化 第2步:选取与合并 第3步:删除与加入
24 5 3
5
23
45
5
23
2 哈夫曼树的构造
W={2,4,5 ,3} 哈夫曼树的构造过程 ⑷ 重复⑵、⑶两步,当 重复第2步:选取与合并 集合F中只剩下一棵二叉树 时,这棵二叉树便是哈夫 曼树。
重复第3步:删除与加入
45
5
23 9
45
9
5
4 52 3
3
哈夫曼编码
前缀编码:任一字符的编码都不能是其他字符编 码的前缀的不等长编码。
利用二叉树进行前缀编码
从根结点到叶子结点的路径上以分支字符组成的 字符串作为叶子节点的编码——前缀编码
哈夫曼编码:以字符出现的频率作权,构造一棵 哈夫曼树,由此得到的前缀编码称哈夫曼编码— —总长最短的二进制前缀编码
2 哈夫曼树的构造
W={2,4,5 ,3} 哈夫曼树的构造过程
⑷ 重复⑵、⑶两步,当 重复第2步:选取与合并 集合F中只剩下一棵二叉树 时,这棵二叉树便是哈夫 曼树。
9
5
4 52 3 14
9
5
4 52 3 14
重复第3步:删除与加入
9
5
4 52 3:A B A C C C C D A B 00 01 00 10 10 10 10 11 00 01—长度为20
3
结点的权的乘积。 D结点的带权路径长度=2×3=6
EF G
24 5
二叉树的带权路径长度:二叉树中所有叶子结点的带权
路径长度之和。
WPL=2×3+2×2+2×4+2×5 =28
1
哈夫曼树的定义
哈夫曼树:给定一组具有确定权值的叶子结点,带权路径长度最小的二叉树。
例:给定4个叶子结点,其权值分别为{2,3,4,7},可以构造出形状不同的多 个二叉树。
⑴⑵⑶初选删始取除化与与:合由加并给入:定:在的在F中nF个选中 权构取两删两值造根棵除棵{nw结 二棵作二1,点叉只为叉w有的树左树2一,权分、,个…值别右并,根最作子将w结为小树新n点} 左的的建 的、立二右的叉子二树叉树,树构从加造而入一得到棵到F一中新;的 二叉树,这棵新二叉树 个的二根叉结树点集的合权F=值{T为1,其T左2 ,、…右,子Tn树};根 结 点 的 权 值 之和;