接下来学习了哈夫曼树,总结一下哈夫曼树:
了解Huffman算法之前,我们先介绍一下一颗树的构造价值:
构造价值指的是,在一个树当中,如果有n层,那么每层的系数为1、2、3……n,然后吧每个叶子节点的构造价值乘以系数,总和就是这棵树的构造总价值,这也就叫做哈夫曼树的构造价值,我们看一个例子:
对于这一棵树,我们计算一下他的哈夫曼构造价值:
这里叶子节点一共有3个:6和13和17
所以价值等于6*2 + 13 *3 + 17 *3 = 102
同样是这3个叶子节点,我们换一种树的构造法:
这种情况下,哈夫曼构造价值 = 17*2 + 6*3 + 13*3 = 91.构造价值比上一种要小。
所以我们发现,只要把数值大的叶子节点,放在更低的层次,就可以使总构造价值更小。这就是哈夫曼树,那么如何构造这棵树呢?
哈夫曼树、哈夫曼编码之类的都是一个思想ÿ