1、哈夫曼树的定义
在许多实际应用中,数中结点常常被赋予一个表示某种意义的数值,称为该结点的权。从树根结点到任意结点的路径长度(经过的边数)与该结点上权值的乘积称为该结点的带权路径长度。数中所有叶结点的带权路径长度之和称为该树的带权路径长度
2、哈夫曼树的构造
特点:
1. 每个初始结点最终都成为叶结点,且权值越小的结点到根节点的路径长度越大。
2. 构造过程中共新建了n-1个结点,哈夫曼树的结点总数2n-1
3. 每次构造都选择2棵树作为新节点的孩子,因此哈夫曼树中不存在度为1的结点
3、哈夫曼编码
对频率高的字符赋以短编码,对频率低的较长编码
4、例题
2、对字符串“mabnmnm”的二进制进行哈夫曼编码有多少位( )13
频率 m:3/7 a:1/7 b:1/7 n:2/7(频率越高离根越近)
建树(o只占位,|表示0 ,\表示1):
o
|\
m o
|\
n o
|\
a b
由|,\转为0,1得:m->0,n->10,a->110,b->111
mabnmnm:0 110 111 10 0 10 0(共13位)