有数据WG={7,19,2,6,32,3,21,10}, (1)画出所构建的Huffman 树; (2)所建Huffman 树的树高是多少? (3)求所建Huffman 树的带权路径长度WPL。
时间: 2023-09-08 16:05:20 浏览: 284
### 回答1:
好的,我明白了。以下是回答:
1. 根据建立Huffman树的规则,我们从WG集合中选取权值最小的两个节点2和3,组成一棵二叉树,其中2为左节点,3为右节点。此时,WG集合中的数据为{7, 19, 6, 32, 21, 10}。然后再从中选取权值最小的两个节点6和7,组成一棵二叉树,其中6为左节点,7为右节点。此时,WG集合中的数据为{19, 32, 21, 10, 13}。接着,选取权值最小的两个节点10和13,组成一棵二叉树,其中10为左节点,13为右节点。此时,WG集合中的数据为{19, 32, 21, 23}。然后选择21和19,组成二叉树,其中21为左节点,19为右节点。WG集合中的数据为{32, 40}。最后,选取权值最小的两个节点32和40,组成一棵二叉树,其中32为左节点,40为右节点。最终,我们得到的Huffman树如下图所示:
2. 所建Huffman树的树高为4。
3. 求所建Huffman树的带权路径长度,需要先求每个叶子节点的权值和它到根节点路径的长度的积,然后将所有叶子节点计算出来的结果相加。即WPL=7×3+19×3+2×4+6×3+32×2+3×4+21×3+10×4=304。因此,所建Huffman树的带权路径长度为304。
### 回答2:
(1)根据给定的数据WG={7,19,2,6,32,3,21,10},构建Huffman树的过程如下:
首先,根据权重值对数据进行排序,得到:{2,3,6,7,10,19,21,32}。
然后,将权重值最小的两个节点合并,并生成一个新的父节点,该父节点的权重值为两个原节点的权重值之和。重复此步骤,直到只剩下一个节点为止。
具体构建Huffman树的过程如下图所示:
100
/ \
42 58
/ \ / \
16 26 19 39
/ \
7 9
根据构建的Huffman树,可以得到每个数据的Huffman编码如下:
7 -> 000
19 -> 01
2 -> 1000
6 -> 1001
32 -> 10
3 -> 110
21 -> 1110
10 -> 1111
(2)所建Huffman树的树高是3,即根节点到最远叶子节点的路径长度。
(3)所建Huffman树的带权路径长度(WPL)即树中所有叶子节点的权重值乘以其到根节点的路径长度之和。根据上面的Huffman树,可以计算得到WPL:
WPL = (7*3) + (19*2) + (2*4) + (6*4) + (32*2) + (3*3) + (21*3) + (10*3) = 3 + 38 + 8 + 24 + 64 + 9 + 63 + 30 = 239
所建Huffman树的带权路径长度为239。
### 回答3:
(1)首先,根据给定的数据WG={7,19,2,6,32,3,21,10},我们可以根据出现频率的大小来构建Huffman 树。
1. 首先,将所有数据按照频率从小到大进行排序:{2,3,6,7,10,19,21,32}。
2. 取出频率最小的两个数,构建一个新的节点,频率为两个数的和:(2, 3)。
3. 更新排序后的序列,并将新构建的节点插入到排序后的位置:{(2, 3),6,7,10,19,21,32}。
4. 重复第二步和第三步,直到序列中只剩下一个节点(根节点)为止。
最终构建的Huffman 树如下所示:
98
/ \
38 60
/ \ / \
17 21 19 41
/ \ / \ / \
7 10 6 2 3 8
(2)所建Huffman 树的树高是4。
(3)为了求所建Huffman 树的带权路径长度(WPL),需要计算每个叶子节点的路径长度,并将每个叶子节点的路径长度与其对应的权重相乘,然后求和。
根据所建Huffman 树,可以得到每个叶子节点的路径长度和权重如下:
节点 频率 路径长度 权重 路径长度 * 权重
7 7 3 21 63
19 19 3 19 57
2 2 3 19 38
6 6 3 18 54
32 32 2 13 26
3 3 2 13 26
21 21 2 11 22
10 10 2 9 18
计算所有叶子节点的路径长度 * 权重后求和,可得所建Huffman 树的带权路径长度(WPL)为:
63 + 57 + 38 + 54 + 26 + 26 + 22 + 18 = 304.
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)