若由3,6,8,12,10作为叶子结点的值生成一棵哈夫曼树,则该树的高度为几?带权路径长度为多少?请画出这棵哈夫曼树
时间: 2023-07-08 08:38:48 浏览: 121
由哈夫曼树生成哈夫曼编码-树和二叉树
根据哈夫曼树的构建规则,我们可以先找到权值最小的两个节点,将它们合并为一个节点,权值为两个节点权值之和。重复这个过程,直到所有节点都被合并为一个节点,构成一棵哈夫曼树。
我们可以先将这些叶子节点从小到大排序,得到 3,6,8,10,12。然后按照权值从小到大的顺序,依次将它们两两合并,得到以下的哈夫曼树:
```
49
/ \
19 30
/ \ / \
8 11 12 18
/ \
3 5
```
这棵哈夫曼树的高度为 3,带权路径长度为 193。
注意:这里的权值指的是叶子节点上的数值,每个叶子节点的权值都是它代表的数值。而带权路径长度指的是每个叶子节点的权值乘以它到根节点的路径长度之和,即:3×3 + 6×2 + 8×2 + 10×2 + 12×2 = 49。
阅读全文