github地址:
https://github.com/arkulo56/thought/blob/master/software/dataStruct/数据结构树哈夫曼树.md
哈夫曼树
权值越大的叶子越靠近根,带权路径越短!
- 路径:节点到另一个节点间之间边的数量
- 树的路径长度:根到每个叶子节点的路径之和
- 叶子的带权路径:根到叶子节点的路径*权重
- 树的带权路径长度(WPL):各叶子结点带权路径之和
用途
- 数据权重越高,从根节点到其叶子结点的路径也越短,效率越高
- 数据压缩:数据发送越频繁的数据元素,权重越高,则其编码越短
构造
https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/huffman.png- 将带权重的数据按照权重由小到大进行排序
- 然后取出最小的两个数据,按照左小右大的原则进行生成,根为N,根的权重为两个叶子数据权重之和
- 循环步骤2,再拿出一个数据和N1进行对比权重,然后生成树结构
网友评论