哈夫曼树是由n个带权叶子结点构成的所有二叉树中带权路径长度最短的二叉树。哈夫曼树可用来构造最优编码,用于信息传输,数据压缩等方面,哈夫曼树是一种应用广泛的二叉树。
1.路径和路径长度
路径:根结点到该结点的分支序列
路径长度:根结点到该结点所经过的分支数目
2.结点的权和带权路径长度
结点的权:给每个结点赋予的一个具有某种实际意义的实数,该实数为结点的权
带权路径长度(WPL):把从根到某一结点的路径长度与该结点的权的乘积,称为该结点的带权路径长度
树的带权路径长度:根到所有叶子结点的各个带权路径长度之和
3.哈夫曼树的构造
)先把给定的权值从小到大排序,选取前两个最小的权值。
)把这两个数从序列中删去,把他们的和放入序列中,在进行排序。
)此时在已排好的序列中选取前两个最小的数,重复以上步骤,直到序列中没有权值
给定结点权值(8 6 9 3 5 7 4 )构造哈夫曼树,并计算其带权路径长度