哈夫曼树和哈夫曼编码
1、哈夫曼树和哈夫曼编码理论
最佳判定树,最优二叉树。
哈夫曼树又称为最佳判定树、最优二叉树,是一种带权路径长度最短的二叉树,常用于数据压缩。
所谓树的带权路径长度,就是树中所有的叶子节点的权值乘以 其到根节点的路径长度,因此树的带权路径长度记为WPL = (W1 * L1 + W2 * L2 + W3 * L3 + … + Wn * Ln),N个权值Wi(i=1,2,…,n)构成一颗有N个叶子节点的二叉树,相应的叶子节点的路径的长度是Li(i=1,2,…,n)。(W1: 第一个叶子节点的权值
L1: 第一个叶子节点到根路径的长度)
重要概念:
- 路径和长度
- 节点的权以及带权路径长度
- 树的带权路径长度
应用场景: 哈夫曼编码
目的: 为给定的字符集合构建二进制编码,使得编码的期望长度达到最短。
- 哈夫曼编码不同于ASCII和Unicode这些字符编码,这些字符集中的码长都采用的是长度相同的编码方案;
- 而哈夫曼编码使用的是变长编码,而且哈夫曼编码满足立刻可解码性(就是说任一字符的编码都不会是另一个更长字符编码的前缀<