Huffman文件压缩之文件夹压缩
来源:互联网 发布:java安装在d盘教程 编辑:程序博客网 时间:2024/06/16 18:58
思路
应用huffman是带权路径最小二叉树这个性质,完成的文件压缩。我们可以应用这个性质。让一个文件中,每个字符出现的次数作为权值。这样离根节点越近的节点,它的字符出现的次数就越多。然后根据这个节点在父节点左,有效编码为0,在右,有效编码为1,从跟遍历到该节点,得到相应的huffman编码,然后用huffman编码去替代该文件中该字符得而实现压缩。
其实上面说的是字符,我们不应该单单把它看成一个字符。而是应该把它当成在单个字节中的一个数字。我们实际不是统计每个字符出现的次数,而是统计的是在待压缩文件中,每个字节相应的数字在该文件中出现了多少次。一个字节,总共有256种数字。所以我们要统计一个文件中这256种数字到底出现了多少次,然后拿它们的次数去创建huffman树,得到编码后完成压缩。
我的文件夹压缩就是基于上面huffman压缩的实现原理。我压缩文件夹时候,先调用了opendir函数,然后再调用了readdir函数,根据深度优先遍历了该文件夹(目录)下的所有文件,然后把所有文件的路径保存到了一个vector中。最后一个一个压缩vector中的文件,从而实现的压缩文件夹。
遍历目录时思路图
现象
代码
https://github.com/sdoyuxuan/Dircompress
阅读全文
0 0
- Huffman文件压缩之文件夹压缩
- Huffman编码之文件的解/压缩
- Huffman编码之文件压缩问题
- Huffman树---之文件压缩项目
- huffman 文件 压缩 解压缩
- HuffMan编码--文件压缩
- Huffman实现文件压缩
- huffman算法---文件压缩
- Huffman文件压缩
- huffman 文件压缩
- 文件压缩---huffman算法
- huffman实现文件压缩
- Huffman编码压缩解压缩文件
- 【项目】HuffMan编码--文件压缩
- 【c++】Huffman实现文件压缩
- 基于huffman的文件压缩
- Huffman压缩
- huffman压缩
- 前端基础 JavaScript Function、BOM对象 笔记
- ajax冲突
- 编译并裁剪boost1.65
- 连接数据库实现登录(3)
- 程序员总结:帮助你早些明白一些道理
- Huffman文件压缩之文件夹压缩
- Judge Route Circle
- Unity笔记之-----简单的背包切换
- java实现的最小编辑距离
- LeetCode | 71. Simplify Path
- mysql添加用户
- 长安汽车悦翔V7中控台GPS导航密码
- 关于获取网络图片问题
- HDU 3790 最短路径问题