我正在为我的课堂作业创建哈夫曼压缩程序。我知道如何实现它,但是由于解码器要么使用编码器存储的转换表,要么从头开始创建huffman树,所以我想将完整的huffman树存储为编码器存储,这样解码器就不需要重建它。我开始知道用指针保存东西是不一样的,所以我看到序列化可能会有帮助。我的主要问题是:
1-序列化是否能够按原样存储树?
2-存储树是否比存储转换表并重建它占用更多空间?
我想最小化存储在编码文件中的树数据。
我说的是纯文本压缩。
-谢谢
最佳答案
你不需要转移那棵树。获得每个符号的代码长度后,丢弃树。然后可以根据符号的长度和顺序构造canonical code。然后,您将只向解码器发送长度,解码器将仅从长度构造相同的规范代码。