哈夫曼树是一个利用权值进行优化编码的一个比较奇怪的树,他的实现比较简单,用途也比较单一。
哈夫曼树的实现,实现要求:
- 通过哈夫曼树可以保证在编码过程中不会出现例如:1000和100这样的编码规则,否则就会编码失败,因为1000和100在某些情况下的编码会一模一样。
- 通过哈夫曼树可以保证权值大的值进行编码时,对应编码规则的编码比较短,这样就保证了编码的简便性。
基本要求就是这两个,当然以后进行代码书写等等,就不用考虑那么多了,因为前辈们已经帮我们完成了测试,只是需要我们去实现就可以了。
实现的对应方式: - 首先将每一个编码的原始值放在我的树的叶子节点上,那么就不会在他的路径上出现编码,那么就不会出现上文说的那样。
- 我们把权值大的编码放在比较浅的位置,这样利用左右子树表示0,1就可以很快的进行编码,并且保证了权值大的编码短
应用 :文件压缩的讲解:https://mp.csdn.net/mdeditor/84350819#