哈夫曼树的带权路径长度是什么?

哈夫曼树的带权路径长度是什么?,第1张

1.树的路径长度
树的路径长度是从树根到树中每一结点的路径长度之和在结点数目相同的二叉树中,完全二叉树的路径长度最短
2.树的带权路径长度(Weighted Path Length of Tree,简记为WPL)
结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数
结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积
树的带权路径长度(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和,通常记为:
其中:
n表示叶子结点的数目
wi和li分别表示叶结点ki的权值和根到结点ki之间的路径长度
树的带权路径长度亦称为树的代价
3.最优二叉树或哈夫曼树
在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树
例给定4个叶子结点a,b,c和d,分别带权7,5,2和4构造如下图所示的三棵二叉树(还有许多棵),它们的带权路径长度分别为:
(a)WPL=72+52+22+42=36
(b)WPL=73+53+21+42=46
(c)WPL=71+52+23+43=35
其中(c)树的WPL最小,可以验证,它就是哈夫曼树
注意:
① 叶子上的权值均相同时,完全二叉树一定是最优二叉树,否则完全二叉树不一定是最优二叉树
② 最优二叉树中,权越大的叶子离根越近
③ 最优二叉树的形态不唯一,WPL最小

哈夫曼树的带权路径长度算法如下:

1将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点)。

2 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和。

3 从森林中删除选取的两棵树,并将新树加入森林。

4 重复2、3步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。

哈夫曼树:

给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

在计算机数据处理中,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码。

反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

百度百科-哈夫曼树

先建立哈夫曼树

(33)

(10)        (23)

(5)        5        9        14

2       3  

带权路劲长度为每一层权值(层数-1)的总和
(2+3)3+(5+9+14)2=71

详细概念和解释可去百科查看

我的理解:树的带权外部路径长度应该就是指树的带权路径长度WPL。
8 5 13 2 6构造的哈夫曼树是:
(34)
/ \
(13) (21)
/ \ / \
6 (7) 8 13
/ \
2 5
WPL = 62+23 + 53 + 82+ 132 = 75


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12952881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存