哈夫曼树总结习题(2学时)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.6 Huffman树
• 基本概念 • 构造 • 编码
1. 基本概念
• 路径:从一个结点到另一个结点之间的分支. • 路径长度:路径上分支数目. • 结点的路径长度:从根结点到该结点的路径长度. • 树的路径长度:树中每个结点的路径长度之和.
完全二叉树这种长度最短的二叉树. • 结点的带权路径长度:该结点的路径长度*结点的权值 • 树的带权路径长度:树中所有叶子结点的带权路径长度 之和.记作:WPL=∑wklk 例如 • 最优二叉树:在所有含n个叶子结点、并带相同权值
Huffman 树形态不 唯一!
构造过程(Huffman算法) (1) n个权值构成n棵独立二叉树的森林F={T1,…Tn} (2)在森林中选出两棵根权值最小的二叉树作为 左右子树,构造二叉树,根权值为左右子树的和 (3) 在F中删除这两棵,新构成的添加到F中 (4)重复(2)和(3),直到F中含一棵二叉树为止.
F1= A 7
B2
C4
D5
E9
F2= A 7
6
B2
C4
B2
C4
D5
E9
11
6
F3= A 7
6 D D5 5
E9
B2
C4
B2
C4
接上页:
F4=
16
A
7A
7 E
9
B2
11 E9
6 D5
C4
F5=
27
16
11
A 7 E169
6 11 D 5
A
EB 2 6 CD 45
7
9
2B C4
根的权值为27
WPL=7*2+2*3+4*3+5*2+9*2=60
3. Huffman编码
(1) 等长编码 A B C D
00 01 10 11 两位一分进行译码
(2) 不等长编码:出现多的字符采用短码,总长短了!
但出现二义性! A B C D
0 00 1 11
(3) 前缀编码:一个字符的编码都不是另一个字符的编
码的前缀.
用二叉树实现: 左分支0;右分支1
0
1
C
96
WPL=0.23*2+0.11*3+……
42
54
23
19 29
29
11
8
14
15
5
3
7
8
Huffman编码
0.05: 0110
0.29: 10
0.07: 1110
0.08: 1111
0.14: 110
0.23: 00
0.03: 0111
0.11: 010
Fra Baidu bibliotek业:
本章小结
1. 掌握树的定义,表示形式和术语(二叉树通用) 掌握树的存储结构(孩子-兄弟表示) 掌握树与二叉树的转换 了解树的ADT定义与树和森林遍历
W={7,2,4,5,9}
B2
A
E
7
9
2B
D5 C4
C4
D5
7A
E9
WPL1=∑wklk =7*2+5*2+2*3 +4*3+9*2 =60
WPL2=∑wklk =7*4+9*4+5*3 +4*2+2*1 =89
在解决某些判定问题时,利用Huffman树可得
到最佳判定算法
例如,某厂生产螺钉,要求直径为d,误差σ.现测
量某螺钉直d-径σ,方d法与标d+准σ的比较,判定树? 概率
5% 10% 50% 25% 10%
最大的
最靠近
>d
根判断
=d
>d+ σ
> d- σ
50%
25%
10%
5%
10% WPL=5%*3+10%*3+50%*2+25%*2+10%*2=?
2. Huffman树的构造(自底向上) W={7,2,4,5,9}
0
1
A
B
A: 00 B: 01 C: 1
(4) Huffman编码:设计Huffman树而得到的编码.
例如:有8种字符,概率如下: 设计Huffman编码 {0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11}
解:同时扩大100倍,得权值集合: {5,29,7,8,14,23,3,11}
2. 掌握二叉树的ADT定义,特点,结点的形态,性质,存 储结构(二叉链表) 掌握二叉树的遍历,线索的方法 掌握遍历算法的应用 掌握二叉树与树和森林的转换 掌握Huffman树概念,构造和编码
两个结论:
(1) 在Huffman树中没有度为1的结点.
(2) 一棵有n个叶子结点的Huffman树共有2n-1个 结点.证明设?总结点数为m个,叶子n个,度为1的n1个,度
为2的n2个
m=n+n1+n2 由性质3 n=n2+1 所以 n2=n-1 m=n+n1+n2 =n+n1+n-1 =2n+n1-1 有(1)得 n1=0 所以 m=2n+0-1=2n-1
相关文档
最新文档