哈夫曼树
哈夫曼树也叫最优二叉树(哈夫曼树)
定义
名词解释
| 名词 | 解释 |
|---|---|
| 路径长度 | 根结点到第L层结点路径长度为L-1 |
| 树的带权路径长度(WPL) | 树中所有叶子结点的带权路径长度之和![]() 其中,n表示叶子结点的数目,wi和li分别表示叶子结点ki的权值和树根结点到叶子结点ki之间的路径长度。 |
![]() |
|
特点
- 哈夫曼树中权越大的叶子离根越近(WPL最小的二叉树)
- 具有相同带权结点的哈夫曼树不惟一
- 哈夫曼树的结点的度数为 0 或 2, 没有度为 1 的结点;
- 包含 n 个叶子结点的哈夫曼树中共有 2n – 1 个结点。
- 包含 n 棵树的森林要经过 n–1 次合并才能形成哈夫曼树,共产生 n–1 个新结点


WPL 最小的值所属的树即为哈夫曼树



哈夫曼创建

为什么数组buffTree[2n-1] 的大小是2n-1,是因为n个子节点构成的树节点最多的个数是2n-1个


哈夫曼树编码
前缀编码



特点:
权值越高的叶子节点越靠近根节点


