1. 哈夫曼(HUFFMAN)编码是哈夫曼树的一个应用。
2. 哈夫曼树又称为最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的相对值乘上其到根结点的路径和权值。
3. 图像JPG就是利用了哈夫曼编码。
4. 哈夫曼树是最优二叉树,子树有左右次序之分。
5. 哈夫曼树的形态不是唯一的,但是它的带权路径长度WPL是唯一的。
6. 哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
7. 路径:从一个结点往下可以达到孩子或孙子结点之间的通路,称为路径。通路中分支的数目为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。
8. 结点的权:树结点中有些某种含义的数值,称为结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。
10. 树的带权路径长度为所有叶子结点的带权路径长度之和,记为WPL。
11. 哈夫曼树是WPL最小的二叉树。
12. 有4个结点,权值分别为7,5,2,4,构造此4个结点为叶子结点的哈夫曼树:
WPL=7´1+5´2+2´3+4´3= 35
WPL=7´1+5´2+2´3+4´3= 35
13. 满二叉树不一定是哈夫曼树。
14. 给定n个权值{w1,w2,w3..,wn},构造哈夫曼树的过程:
(1)将权值构成森林F。
(2)从F中选取两个根结点权值最小的树作为左右子树构造新的二叉树。置新的二叉树的根结点为左右子树根结点的权值之和。
(3)从森林中删除已加入的子树。
(4)重复以上步骤,直至森林中只剩一棵树。
15. 哈夫曼树中权越大的叶子离根越近。
16. 具有相同带权结点的哈夫曼树不唯一。
17. 包含n个叶子结点的哈夫曼树共有2n-1个结点。
18. 哈夫曼编码可以用于数据文件压缩。
19. 用二叉树表示二进制。以电文中的字符作为叶子结点构造二叉树。将二叉树中结点引向其左孩子分支记0, 引向其右孩子分支记1,每个字符编码即为从根到每个叶子的路径上得到的0,1序列。
如:
编码: A:0, C:10,B:110,D:111
20. 例:如果需传送的电文为 ‘ABACCDA’,即:A, B, C, D
的频率(即权值)分别为 0.43, 0.14, 0.29, 0.14,试构造哈夫曼编码。
编码: A:0, C:10, B:110, D:111 。电文 ‘ABACCDA’ 便为 ‘0110010101110’(共 13 位)。
笔试例题:
1. 设一组权值集合 W={15, 3, 14, 2, 6, 9, 16, 17} , 要求根据这些权值构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为是多少?
答案:229, WPL=16x2+17x2+14x3+15x3+9x3+6x4+2x5+3x5=229
参与资料:http://www.cnblogs.com/kubixuesheng/p/4397798.html