已知叶子的权值为{3, 9, 12, 6, 22, 13, 31, 10},试构造一颗赫夫曼树,使得带权路径长度最短,并求出对应的WPL值。
时间: 2023-09-04 20:07:14 浏览: 69
首先将叶子结点按照权值从小到大排序,得到{3, 6, 9, 10, 12, 13, 22, 31}。然后每次选择权值最小的两个叶子结点进行合并,得到新的父节点,权值为两个叶子结点的权值之和。这样不断重复,直到所有的叶子结点都被合并成一个根节点,就构造出了赫夫曼树。
具体过程如下:
1. 3和6合并,权值为9
2. 9和10合并,权值为19
3. 12和13合并,权值为25
4. 19和22合并,权值为41
5. 25和31合并,权值为56
6. 41和56合并,权值为97
最终得到的赫夫曼树如下所示:
```
97
/ \
41 56
/ \ / \
19 22 25 31
/ \
9 10
\
3
\
6
```
对应的WPL值为:3*1 + 6*2 + 9*2 + 10*2 + 12*2 + 13*2 + 22*2 + 31*2 = 236。
因此,带权路径长度最短的赫夫曼树已经构造完成,并且对应的WPL值为236。
阅读全文