数据结构设一组结点权重分别为5 2 3 6 13 7 1,画出其HUFMAN树
时间: 2024-01-06 09:07:00 浏览: 92
好的,我来画一下:
首先将结点按照权重从小到大排序,得到{1, 2, 3, 5, 6, 7, 13}。
然后取出权重最小的两个结点 1、2,构建一个新的父节点,权重为它们的和3。
将3插入到原来的结点集合中,得到{3, 3, 5, 6, 7, 13}。
再次取出权重最小的两个结点 3、3,构建一个新的父节点,权重为它们的和6。
将6插入到原来的结点集合中,得到{5, 6, 7, 13, 6}。
再次取出权重最小的两个结点 5、6,构建一个新的父节点,权重为它们的和11。
将11插入到原来的结点集合中,得到{7, 13, 11, 6}。
再次取出权重最小的两个结点 7、6,构建一个新的父节点,权重为它们的和13。
将13插入到原来的结点集合中,得到{11, 13, 13}。
再次取出权重最小的两个结点 11、13,构建一个新的父节点,权重为它们的和24。
最后得到一棵Huffman树,如下图所示:
```
24
/ \
11 13
/ \
5 6
/ \
3 3
/ \
1 2
```
相关问题
Hufman决策树高效规划
Huffman决策树是一种用于高效规划的数据压缩算法。它是一种基于概率的编码方法,通过将出现频率较高的字符用较短的编码表示,从而实现数据的压缩和解压缩。
Huffman决策树的构建过程如下:
1. 统计待压缩数据中各字符出现的频率。
2. 将每个字符作为一个独立的叶子节点,并按照频率构建一个最小堆。
3. 从最小堆中选择频率最小的两个节点,合并为一个新节点,频率为两个节点的频率之和。将新节点插入到最小堆中。
4. 重复步骤3,直到最小堆中只剩下一个节点,即根节点。
5. 根据构建好的Huffman决策树,给每个字符分配一个唯一的编码,规定左分支为0,右分支为1。
6. 使用Huffman编码对原始数据进行压缩。
Huffman决策树的优势在于能够根据字符出现的概率分配更短的编码,从而实现更高效的压缩效果。它被广泛应用于数据传输和存储等领域。
字符集(A,B,C,D,E,F)在电文中出现的概率分别为10.10,0.19,0.20,0.35,0.12,0.04),则对应Hufman树的WPL为多少
已知字符集(A,B,C,D,E,F)在电文中出现的概率分别为10.10,0.19,0.20,0.35,0.12,0.04,要求对应Huffman树的WPL。
首先需要构建Huffman树。按照概率从小到大排序,先选取概率最小的两个字符构成一个子树,其概率为0.04+0.12=0.16,然后将这个子树的根节点的概率和前面的概率从小到大排列,再选取最小的两个概率构成一个新的子树,依次类推,直到构建完成Huffman树为止。构建出的Huffman树如下所示:
```
1.00
/ \
/ \
0.64 0.36
/ \ / \
D(0.35) C(0.20) A(0.10)
/ \
/ \
0.11 0.09
/ \ / \
B(0.19) E(0.12) F(0.04)
```
其中括号中的数字表示该字符在电文中出现的概率。
根据Huffman编码的原理,每个字符在Huffman树中的编码为从根节点到该字符的路径上经过的边的方向,左边为0,右边为1,例如字符C的编码为10,字符D的编码为0,等等。因此,每个字符在电文中出现的平均编码长度为该字符在电文中出现的概率乘以该字符的编码长度,例如字符A的平均编码长度为0.10×3=0.30,字符B的平均编码长度为0.19×4=0.76,等等。
因此,整个电文的加权路径长度(WPL)为所有字符在电文中出现的平均编码长度之和,即:
WPL = 0.35×1 + 0.20×2 + 0.10×3 + 0.19×4 + 0.12×3 + 0.04×4
= 1.35
因此,对应Huffman树的WPL为1.35。
阅读全文