哈夫曼树权值怎么计算目录
对给定的一组权值:4.9.2.3.6.8,构造一棵哈夫曼树,并计算出带权路径长度,急!谢谢
哈夫曼树权值怎么计算
哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。哈夫曼树的构造过程是每次取当前未处理的节点中权值最小的两个节点,将它们合并为一个新的节点,这个新的节点的权值就是这两个节点的权值之和。然后再将这个新的节点加入到未处理的节点集合中,直到所有的节点都被处理完。
对于哈夫曼树的权值计算,一般采用的方法是先构造哈夫曼树,然后根据树的节点计算权值。一种常见的方法是取所有的叶子节点,用叶子节点与路径的乘积的和作为权值。另一种方法是取所有的非叶子节点的总和作为权值。还有一种方法是直接根据树的构造过程来计算权值,即根节点的两个左子树的平均值的一半。
具体的计算方法可能会因应用场景和数据类型的不同而有所不同,可以根据具体需求来选择适合的方法。另外,如果需要实现哈夫曼编码等应用,也可以通过哈夫曼树的构造和权值计算来实现。
哈夫曼树权值计算
39
15 24
7 (8) (9) (15)
(2) (5)
带权长度:3*2+3*5+2*8+2*9+2*15
平均长度:带权长度/(2+5+8+9+15)
对给定的一组权值:4.9.2.3.6.8,构造一棵哈夫曼树,并计算出带权路径长度,急!谢谢
展开全部
哈夫曼树是:
32
/ \
14 18
/ \ / \
6 8 9 9
/ \
4 5
/ \
2 3
WPL = 2*4+3*4 + 4*3 +( 6+8+9)*2 = 78
哈夫曼树怎么求树根权值?
构造哈夫曼树步骤是,选择两个权值最小的点构造树,新树根权值为左右子树权值之和,新的权值放回到序列中,继续按照上述不走构造树,直到只有一颗树为止。
权值排序一下:2 3 5 6 8
选择2和3构造树,权值序列变为
5 5 6 8
/
2 3
选择 5 5
6 8 10
/
5 5
/
2 3
选择 6,8构造权值14的树 然后选择 10,14,最终哈夫曼树为:
24
/
10 14
/ /
5 5 6 8
/
2 3
树带权路径长度WPL = 2*3 + 3*3 + 5*2 + 6*2 + 8*2 = 53
就是每个叶子结点的权值*高度之和。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://yihuasong.com/shu/4422.html