这是一个使用C++实现的Huffman编码文件压缩与解压缩工具,用于学习和实践数据压缩算法。
make
g++ -std=c++11 -Wall -O2 main.cpp huffman.cpp -o huffman
./huffman -c <输入文件> <输出文件>
./huffman -d <输入文件> <输出文件>
make example
这将自动:
# 创建测试文件
echo "Hello, World! This is a test for Huffman coding." > test.txt
# 压缩文件
./huffman -c test.txt test.huf
# 解压文件
./huffman -d test.huf output.txt
# 比较原始文件和解压后的文件
diff test.txt output.txt
. ├── huffman.h # Huffman编码类的头文件 ├── huffman.cpp # Huffman编码类的实现 ├── main.cpp # 主程序入口 ├── Makefile # 编译配置 └── README.md # 项目说明
Huffman编码是一种常用的无损数据压缩算法,其核心思想是:
正在压缩文件: test.txt -> test.huf 哈夫曼编码表: ' ': 00 'a': 1101 'b': 111000 'c': 111001 ... 压缩完成! 原始大小: 256 字节 压缩后大小: 128 字节 压缩率: 50.00%
make clean