1.给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度
wpl达到最小,这样的二叉树称为最优二叉树,也称哈夫曼树
2.赫夫曼树是带权路径长度最短的树,权值较大的结点离根较劲
结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积
树的带权路径长度:所有叶子结点的带权路径长度之和 wpl
如何构建赫夫曼树
1.排序 升序
2.取处根节点权值最小的两颗二叉树
3.组成一颗新的二叉树,该新的二叉树的根节点权值是前面两颗二叉树根节点权值的和
4. 再将这颗新的二叉树,以根结点的权值大小再次排序,不断重复1-2-3-4的步骤,直到数列中所有数据都被处理
heffman编码
根据heffman树,给各个字符编码,向左的路径为0,向右为1