树形结构的用处有很多,例如排序时利用树的结构保存节点大小关系,如堆、二叉树等排序;查找、修改节点时利用树的平衡性来简化操作,如AVL树、红黑树,此处利用树的另一项特性:优化判断。
定义
哈夫曼树的学术定义为,带权路径长度最短的二叉树,即节点具有两个属性:
1、权值,可以看作节点表达出的数值大小,或者变换的表示为概率大小
2、路径,可以看作由根节点到达当前节点的分支数,左分支和右分支具有不同意义
带权路径长度即为权值与路径乘积的累加,所以哈夫曼树首先是一棵二叉树,其次通过调整二叉树节点位置,使得带权路径长度最小。
示例
<