有7个带权结点,其权值分别为4,7,8,2,5,16,30,试以它们为叶子结点构造一棵赫夫曼树,并计算其WPL。
时间: 2024-05-06 15:18:58 浏览: 139
构造赫夫曼树的步骤如下:
1. 将带权结点按权值从小到大排序,得到{2, 4, 5, 7, 8, 16, 30}。
2. 取出权值最小的两个结点,将它们合并成一个新的结点,新结点的权值为这两个结点的权值之和。这里是2和4,合并后得到一个新结点6。
3. 将新结点6插入到原来的序列中,得到{5, 6, 7, 8, 16, 30}。
4. 重复步骤2和3,直到序列中只剩下一个结点,这个结点就是赫夫曼树的根节点。
按照上述步骤,构造出的赫夫曼树如下图所示:
```
72
/ \
30 42
/ \
16 26
/ \
11 15
/ \ / \
5 6 7 8
/ \
2 3
```
计算WPL的方法是将每个叶子结点的权值乘以它到根节点的距离,再将所有叶子结点的结果相加。因此,这棵赫夫曼树的WPL为:
2×5 + 3×5 + 5×4 + 6×4 + 7×3 + 8×3 + 11×2 + 15×2 + 16×2 + 30×1 = 288
因此,这棵赫夫曼树的WPL为288。
相关问题
有7个带权结点,其权值分别为4,7,8,2,5,16,30,试以它们为叶子结点构造一棵赫夫曼树
赫夫曼树的构建过程如下:
1. 将结点按照权值从小到大排序,得到 2,4,5,7,8,16,30。
2. 从中选取权值最小的两个结点 2 和 4,构造一棵二叉树,其根节点的权值为 2 + 4 = 6,将这棵树看作一个结点,权值为 6。
3. 将上一步构造的结点和权值为 5 的结点组成新的二叉树,其根节点的权值为 5 + 6 = 11,将这棵树看作一个结点,权值为 11。
4. 将上一步构造的结点和权值为 7 的结点组成新的二叉树,其根节点的权值为 7 + 11 = 18,将这棵树看作一个结点,权值为 18。
5. 将上一步构造的结点和权值为 8 的结点组成新的二叉树,其根节点的权值为 8 + 18 = 26,将这棵树看作一个结点,权值为 26。
6. 将上一步构造的结点和权值为 16 的结点组成新的二叉树,其根节点的权值为 16 + 26 = 42,将这棵树看作一个结点,权值为 42。
7. 将上一步构造的结点和权值为 30 的结点组成新的二叉树,其根节点的权值为 30 + 42 = 72,将这棵树看作一个结点,权值为 72。
8. 构造完成,得到一棵赫夫曼树,其根节点的权值为 72。树的形态如下所示:
```
72
/ \
42 30
/ \
18 16
/ \
7 11
/ \
5 6
/ \
2 4
```
有七个带权结点,其权值分别为3,5,7,2,6,12,15.构造哈夫曼树,计算带权路径长度
好的,让我帮你计算一下。根据哈夫曼树的构造规则,我们先将权值从小到大排序,得到:2,3,5,6,7,12,15。然后,将权值最小的两个节点合并,得到一个新节点,权值为它们之和。依次类推,直到只剩下一个节点,构成哈夫曼树。在这个过程中,每次新节点的权值都是合并的两个节点的权值之和。最后,将每个叶子节点到根节点的距离乘以它的权值,再把所有叶子节点的结果相加,就是带权路径长度。所以,这道题的带权路径长度是:2*3 + 2*5 + 3*6 + 3*7 + 4*12 + 4*15 = 138。
阅读全文
相关推荐
















