1.哈夫曼树的定义
树中结点被赋予一个表示某种意义的数值,称为该结点的权。从树根结点到任意结点的路径长度(经过的边数)与该结点上权值的乘积称为该结点的带权路径长度。树中所有叶结点的带权路径长度之和称为该树的带权路径长度,记为
WPL=连加Wi*Li
式中,Wi是第i个叶结点所带的权值;Ii是该叶结点到根结点的路径长度。
在含有N个带权叶子结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈弗曼树,也称为最优二叉树。
2.哈夫曼树的构造
给定N个权值分别是w1,W2,……,Wn的结点
1)将这N个结点分别分为N棵含一个结点的二叉树,构成森林F.
2)构成一个新结点,并从F中选取两个根结点权值最小的树作为新结点左、右子树,并且将新结点的权值置成左、右子树上根结点的权值之和。
3)从F中删除刚才选出的两棵树,同时将得到的树加入F中。