1. 首先要知道扩充二叉树的概念
扩充二叉树:在原有的二叉树上面,添加叶节点;使原有的节点都变成度数为2的分支节点;这样得到的树就是扩充二叉树
扩充二叉树中;所有新增的节点就是外部节点;原有的节点就称为内部节点;由于前面的公式:叶节点的数量 n1 = 分支节点数量 n2 + 1 ,我们可知道对于扩充二叉树来说,就是外部节点 = 内部节点 + 1
外部路径长度E:是树根到每一个外部节点的路径长度之和。
内外路径长度公式:E = I + 2xn ;n表示内部节点。
2. 带权扩充二叉树的路径长度
每个叶节点都给一个数值;就如下图一样计算这种 带权扩充二叉树的路径长度:
3. 所谓的哈夫曼树就是使 上面的带权扩充二叉树的路径长度降到最小的二叉树的构造方式。
4. 哈夫曼树的构造算法(心里默念:把每个叶节点按照权值的大小,先把最小的两个叶节点构成一个父节点是他们之和的小二叉树,在以父节点为新的“叶节点” 参与后续大小的比较;继续这样构成新的二叉树。)