哈夫曼树的建立、编码以及WPL值的计算

假设用于通信的电文由字符集{A,B,C,D,E,F}中的字母构成,这些字母在电文中出现的概率分别为{0.10,0.19,0.20,0.35,0.12,0.04},要求:
1、构造一棵Huffman树,填写下表,要求左结点的权不大于右结点的权
2、在下表中填入各字符的Huffman编码(左分支为”0”,右分支为”1”)
3、求带权路径长度
解析:
1、哈夫曼树的构造
将电文概率由大到小依次排序
0.04,0.10,0.12,0.19,0.20,0.35
将0.04和0.10作为左子树,右子树构成一棵树。
则如图所示:
哈夫曼树的建立、编码以及WPL值的计算_第1张图片
它们根节点之和作为新的结点,删掉刚才两个结点,加入新结点0.14重新由大到小排序
0.12,0.14,0.19,0.20,0.35
将最小的两个结点作为左子树、右子树构成新的树。
如图所示:
哈夫曼树的建立、编码以及WPL值的计算_第2张图片
删掉刚才两个结点,加入新结点0.26,重新排序
0.19,0.20,0.26,0.35
将此时最小的两个结点作为左右子树,建立新的树
如图所示:
哈夫曼树的建立、编码以及WPL值的计算_第3张图片
删掉刚才两个结点,加入新结点0.39,重新排序
0.26,0.35,0.39
将此时最小的两个结点作为左右子树,建立新的树
如图所示:
哈夫曼树的建立、编码以及WPL值的计算_第4张图片
至此只剩下两个结点,构成满足条件的树,如图:
哈夫曼树的建立、编码以及WPL值的计算_第5张图片
2,哈夫曼编码
(菜鸟的自我理解,有错误还希望大家指正)
如图所示:
哈夫曼树的建立、编码以及WPL值的计算_第6张图片
这里附加一个数据结构与算法课本案例

哈夫曼树的建立、编码以及WPL值的计算_第7张图片
3,WPL值的计算
首先给出路径和路径长度的概念,从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。树的路径长度是从树根到每一结点的路径长度之和。
树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作WPL.

带权路径长度 = (0.19 +0. 20 + 0.35) * 2 + 0.12 * 3 + (0.04 + 0.10) * 4 = 2.4

你可能感兴趣的:(数据结构与算法)