已知一组权值W={6,8,2,4,9,15,20},请构造一棵哈夫曼树,并计算出其WPL值。请按
1个回答
关注
展开全部
哈夫曼树的构造过程如下:
1. 将6和8合并成一个节点,权值为14。
2. 将2和4合并成一个节点,权值为6。
3. 将14和6合并成一个节点,权值为20。
4. 将20和9合并成一个节点,权值为29。
5. 将29和15合并成一个节点,权值为44。
6. 将20和44合并成一个节点,权值为64,得到最终的哈夫曼树。
64 / \ 20 44 / \ / \ 6 14 15 29 / \ 2 4
根据左子树根节点的权小于等于右子树根节点的权的原则,最小的两个节点必须放在左子树,因此在第4步和第5步中,将20和9以及29和15的位置进行了交换。这样构造出的哈夫曼树满足条件,是一个合法的哈夫曼树。
然后计算WPL值,方法是将所有叶子节点的权值乘以其到根节点的距离,然后将所有叶子节点的WPL值相加。
叶子节点的WPL值为:
6:3(3条边到根节点)
8:3
2:4
4:4
9:2
15:2
20:2
因此,WPL值为:6*3 + 8*3 + 2*4 + 4*4 + 9*2 + 15*2 + 20*2 = 128
因此,构造得到的哈夫曼树的WPL值为128。
咨询记录 · 回答于2024-01-11
已知一组权值W={6,8,2,4,9,15,20},请构造一棵哈夫曼树,并计算出其WPL值。请按
已知一组权值W={6,8,2,4,9,15,20},请构造一棵哈夫曼树,并计算出其WPL值。请按左子树根节点的权小于等于右子树根节点的权的原则构造,否则不给分。
哈夫曼树的构造过程如下:
1. 将6和8合并成一个节点,权值为14。
2. 将2和4合并成一个节点,权值为6。
3. 将14和6合并成一个节点,权值为20。
4. 将20和9合并成一个节点,权值为29。
5. 将29和15合并成一个节点,权值为44。
6. 将20和44合并成一个节点,权值为64,得到最终的哈夫曼树。
64
/ \_
20 44
/ \_/ \_
6 14 15 29
/ \_ \_/ \_
2 4 9 15
根据左子树根节点的权小于等于右子树根节点的权的原则,最小的两个节点必须放在左子树,因此在第4步和第5步中,将20和9以及29和15的位置进行了交换。这样构造出的哈夫曼树满足条件,是一个合法的哈夫曼树。
然后计算WPL值,方法是将所有叶子节点的权值乘以其到根节点的距离,然后将所有叶子节点的WPL值相加。叶子节点的WPL值为:6:3(3条边到根节点)8:3 2:4 4:4 9:2 15:2 20:2 因此,WPL值为:6*3 + 8*3 + 2*4 + 4*4 + 9*2 + 15*2 + 20*2 = 128 因此,构造得到的哈夫曼树的WPL值为128。