经过对原文件进行哈夫曼压缩后,得到了后缀为.mecHuf的新文件
这个新文件,起始是16B的文件头,包含了解压缩所需要的必要信息,文件头后是连续的由 1 和 0组成的哈夫曼编码
1- 由原文件创建目标文件,并为目标文件更名增加新后缀
同博客 哈夫曼2- 对文件进行哈夫曼压缩并处理原文件的第一部分,新产生的目标文件的后缀更改为.dehuf
且新增函数判断此处原文件是否为.mecHuf的文件

boolean isHuffmanFile()函数将会打开原文件,并逐个读取前三个字符分别与m,e,c比较是否相等,此函数基于先前已将经过哈夫曼编码的文件的文件头前三个字符设置成m,e,c
2- 进行哈夫曼解码的前几个必须步骤
想要进行解码,得到原先的文件,必须先构建哈夫曼树,由哈夫曼树再进行解码过程,所以先读取文件头内的信息,再获取原文件中出现的字符及其频度,构建哈夫曼表来解码
先将原文件的文件头读入到类型为FILE_HEAD的fileHead中

然后获取原文件的字符及其出现频度并打印


最后再进行创建哈夫曼表,进行哈夫曼编码
接着用这些进行解码
3- 进行哈夫曼解码
进行文件哈夫曼解码的过程类似对字符串哈夫曼解码的过程
解码必须建立在已经创建好哈夫曼表的基础上

实际上编码和解码的关键都是创建好哈夫曼树,不断遍历到子叶结点并处理
本文深入探讨了哈夫曼压缩算法的工作原理,包括压缩文件的结构、哈夫曼树的构建与使用,以及如何对压缩后的文件进行解码。通过解析.mecHuf格式的文件,读者将了解到如何读取文件头信息、获取字符频度并构建哈夫曼表,最终实现解码过程。
5359

被折叠的 条评论
为什么被折叠?



