数据结构_树_哈夫曼树

github地址:
https://github.com/arkulo56/thought/blob/master/software/dataStruct/数据结构哈夫曼树.md

哈夫曼树

权值越大的叶子越靠近根,带权路径越短!

  1. 路径:节点到另一个节点间之间边的数量
  2. 树的路径长度:根到每个叶子节点的路径之和
  3. 叶子的带权路径:根到叶子节点的路径*权重
  4. 树的带权路径长度(WPL):各叶子结点带权路径之和

用途

  1. 数据权重越高,从根节点到其叶子结点的路径也越短,效率越高
  2. 数据压缩:数据发送越频繁的数据元素,权重越高,则其编码越短

构造

数据结构_树_哈夫曼树_第1张图片
https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/huffman.png
  1. 将带权重的数据按照权重由小到大进行排序
  2. 然后取出最小的两个数据,按照左小右大的原则进行生成,根为N,根的权重为两个叶子数据权重之和
  3. 循环步骤2,再拿出一个数据和N1进行对比权重,然后生成树结构

你可能感兴趣的:(数据结构_树_哈夫曼树)