huffman编码算法

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:25:05
给定18个字符文本:A A D A T A R A E F R T A A F T E R

求个字符的哈夫曼码,编程实现。
求各个字符的哈夫曼码。
如果可能的话给个源代码 C++的 不胜感激!

哈夫曼是一种编码手段。也就是说保证将来的编码是最小长度的,最终生成最小的哈夫曼编码树,又称哈夫曼最小树。

它的原理是将一段文本中出现的字符按出现的频率决定其编码。然后按其最终的编码生成一段明文。知道了这个原理,编码还是很简单的。

首先,要实现字符的频度表。也就是说,这18个字符中出现次数最多的一个记作01,然后按其出现的频率,分别生成最小树就可以了!保证哈夫曼最小树的生成!

至于树的生成,可以先生成一个双链表,分别表示左子树,数据,右子树。

生成的哈夫曼树,成为最终编码的依据,每一个字符可以向树上进行查找,根据查找的路径得出这个字符的编码。至于编程序,我的时间有限,你自己实现吧。不少书上有用C实现的例子,如果不同的语言环境,你看过程修改一下就可以了!