给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
实现原理:
1.创建哈夫曼的节点
2.把节点存进List中
3.循环创建哈夫曼树
3.1.排序List
3.2.每次从List中取出二个最小权值
3.3.创建一个新的节点(权值为取出的两个节点的权值和)
3.4.把取出两个节点接到新的节点上
3.5.删除取出的那两个节点
3.6.把新的节点存入List中(反复循环3.1- 3.6直到List中只有一个节点)
哈夫曼树节点
构造哈夫曼树
构造过程(第一次写多多包涵)