已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL
时间: 2023-08-19 12:17:06 浏览: 327
霍夫曼树带权路径长度求值.cpp
好的,根据哈夫曼树的构建规则,我们首先需要找到两个最小的权值。这里我们可以先将权值集合从小到大排序,得到{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。
阅读全文