哈夫曼树的建立,哈夫曼编码以及文本文件压缩的问题
包含:
树的建立:
- 通过map<char,int>建立字符的统计数据,获取每一个字符出现的频率,而且map查询很快
- 通过multimap<int,Node>来建立哈夫曼书,因为节点或者子树权重可能存在相同,所以使用multimap
哈夫曼编码的实现
-
字符串编码
获取每一个字符的字符串编码存,比如"10101" -
字符串编码转位编码,每8位转unsigned char存储,最终存储unsigned char数组,同时要存储编码方案,以便以后解压缩
压缩解压缩命令
- 压缩 huffzip inputfilename outputfilename
- 解压缩 huffzip -x inputfilename outputfilename
原谅我的代码和算法可能比较丑陋.haha
代码地址:https://gitee.com/svod5306/cpp/tree/master/DataStructure/Tree