已知权值集合为{5,7,2,3,6,9},要求给 出哈夫曼树,并计算带权路径长度WPL。
时间: 2024-06-13 15:08:28 浏览: 35
以下是已知权值集合为{5,7,2,3,6,9}的哈夫曼树和带权路径长度WPL的计算过程:
(1)树形态:
```
32
/ \
/ \
14 18
/ \ / \
6 8 9 9
/ \
2 4
```
(2)计算带权路径长度WPL:
WPL = 5*2 + 7*2 + 2*3 + 3*3 + 6*2 + 9*2 = 10 + 14 + 6 + 9 + 12 + 18 = 69
相关问题
已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL
好的,根据哈夫曼树的构建规则,我们首先需要找到两个最小的权值。这里我们可以先将权值集合从小到大排序,得到{2,3,5,6,7,9}。
然后我们选取权值最小的两个节点2和3,将它们合并成一个新的节点,权值为2+3=5。这样我们得到了一个新的权值集合{5,5,6,7,9}。
我们再次选取权值最小的两个节点5和5,将它们合并成一个新的节点,权值为5+5=10。这样我们得到了一个新的权值集合{6,7,9,10}。
依次类推,我们可以得到下面的哈夫曼树:
```
37
/ \
/ \
16 21
/ \ / \
5 6 7 14
/ \
3 3
```
其中,叶节点上的数字就是原始的权值,非叶节点上的数字表示其子树的权值之和。
最后,带权路径长度WPL为:
```
WPL = 5*2 + 3*2 + 6*2 + 7*2 + 9*2 + 14*1 = 74
```
因此,哈夫曼树的带权路径长度为74。
已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL。
好的,根据哈夫曼树的构建规则,我们先将权值从小到大排序得到{2,3,5,6,7,9},然后构建哈夫曼树如下所示:
```
32
/ \
12 20
/ \ / \
5 7 6 9
/ \
2 3
```
其中,每个叶子结点代表一个权值,叶子结点的权值即为该权值出现的次数,每个非叶子结点代表两个权值的合并,其权值为左右子树权值之和。
带权路径长度WPL定义为所有叶子结点的权值乘上其到根结点的路径长度之和,因此,WPL的计算公式为:
```
WPL = 5*2 + 7*2 + 6*2 + 9*2 + 3*3 + 2*3 = 74
```
因此,给定的权值集合的哈夫曼树的带权路径长度为74。