哈夫曼树的建立,哈夫曼编码以及文本文件压缩的问题

包含:

树的建立:

  1. 通过map<char,int>建立字符的统计数据,获取每一个字符出现的频率,而且map查询很快
  2. 通过multimap<int,Node>来建立哈夫曼书,因为节点或者子树权重可能存在相同,所以使用multimap

哈夫曼编码的实现

  1. 字符串编码
    获取每一个字符的字符串编码存,比如"10101"

  2. 字符串编码转位编码,每8位转unsigned char存储,最终存储unsigned char数组,同时要存储编码方案,以便以后解压缩

压缩解压缩命令

  1. 压缩 huffzip inputfilename outputfilename
  2. 解压缩 huffzip -x inputfilename outputfilename

原谅我的代码和算法可能比较丑陋.haha
代码地址:https://gitee.com/svod5306/cpp/tree/master/DataStructure/Tree

posted @ 2021-04-05 12:52  大神的老爸  阅读(208)  评论(0编辑  收藏  举报