1. 基本概念
① 结点路径:从树中一个结点到另一个结点的之间 的分支构成这两个结点之间的路径。
② 路径长度:结点路径上的分支数目称为路径长度。
③ 树的路径长度:从树根到每一个结点的路径长度之和。
④ 结点的带权路径长度:从该结点的到树的根结点 之间的路径长度与结点的权(值)的乘积。
⑤ 树的带权路径长度:树中所有叶子结点的带权路径长度之和,记做: WPL=w1 × l1+w2 × l2+ ⋯ +wn × ln=∑wi×li (i=1,2,⋯,n) 其中:n为叶子结点的个数;wi为第i个结点的权 值; li为第i个结点的路径长度。
⑥ Huffman树:具有n个叶子结点(每个结点的权值为wi) 的二叉树不止一棵,但在所有的这些二叉树中,必定存在一棵具有最小带权路径长度的二叉树,称这棵树为 Huffman树(或称最优树) 。
2.Huffman树的构造
构造哈夫曼树的原则:
- 权值越大的叶结点越靠近根结点;
- 权值越小的叶结点越远离根结点。
构造哈夫曼树的过程:
(1)给定的n个权值{W1,W2,…,Wn }构造n棵只有一个叶节点的二叉树, 从而得到一个二叉树的集合F={T1,T2,…,Tn }。
(2)在F中选取根节点的权