6-5 赫夫曼树及其应用

本文深入解析了哈夫曼树的基本概念,包括路径、结点的路径长度、树的路径长度等,并探讨了其作为最优二叉树在编码中的应用。通过实例展示了哈夫曼编码的构建过程,以及如何利用哈夫曼树实现高效的数据压缩。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 赫夫曼树,又称最优树,是一类带权路径长度最短的树,有着广泛的应用。

基本概念:

1. 路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。

结点的路径长度:两结点间路径上的分支数。、

(b) 从 A 到 B, C, D, E, F, G,  

   H, I 的路径长度分别为

   1, 1, 2, 2, 2, 2, 3, 3。

 

树的路径长度:从树根到每一个结点的路径长度之和。记作:TL

TL(a)=0+1+1+2+2+3+3+4+4=20
TL(b)=0+1+1+2+2+2+2+3+3=16  

完全二叉树是路径长度最短的二叉树。

 

权:将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。

结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积。

树的带权路径长度:树中所有叶子结点的带权路径长度之和,记作:

哈夫曼树:最优树

带权路径长度 (WPL) 最短的树

哈夫曼树:最优二叉树

带权路径长度 (WPL) 最短的二叉树

哈夫曼树特点:

1. 满二叉树不一定是哈夫曼树   

2. 哈夫曼树中权越大的叶子离根越近   

3.具有相同带权结点的哈夫曼树不惟一

如何构造哈夫曼树?

1.构造森林全是根

2.选用两小造新树

3.删除两小添新人

4.重复 2、3 剩单根

例:有5 个结点 a, b, c, d, e,权值分别为 7, 5, 5, 2, 4,构造哈夫曼树。

例:如果需传送的电文为 ‘ABACCDA’,即:A, B, C, D 的频率(即权值)分别为 0.43, 0.14, 0.29, 0.14,试构造哈夫曼编码。

编码     A:0

             C:10

             B:110

             D:111

则电文 ‘ABACCDA’ 便为 ‘0110010101110’(共 13 位)。

 

例:如果需传送的电文为 ‘ABCACCDAEAE’,即:A, B, C, D, E 的频率(即权值)分别为 

0.36, 0.1, 0.27, 0.1, 0.18,试构造哈夫曼编码

 

 编码:A:11

             C:10

             E:00

             B:010

             D:011

则电文 ‘ABCACCDAEAE’ 便为 ‘110101011101001111001100’

(共 24 位,比 33 位短)。

 

权值大的放在右子树

 

哈夫曼树的性质:

1.包含 n 棵树的森林要经过 n–1 次合并才能形成哈夫曼树,共产生 n–1 个新结点

2.包含 n 个叶子结点的哈夫曼树中共有2n – 1 个结点。 

3.哈夫曼树的结点的度数为 0 或 2, 没有度为 1 的结点

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值