哈夫曼3-对已经过哈夫曼压缩的文件解压缩

本文深入探讨了哈夫曼压缩算法的工作原理,包括压缩文件的结构、哈夫曼树的构建与使用,以及如何对压缩后的文件进行解码。通过解析.mecHuf格式的文件,读者将了解到如何读取文件头信息、获取字符频度并构建哈夫曼表,最终实现解码过程。
摘要由CSDN通过智能技术生成

经过对原文件进行哈夫曼压缩后,得到了后缀为.mecHuf的新文件
这个新文件,起始是16B的文件头,包含了解压缩所需要的必要信息,文件头后是连续的由 1 和 0组成的哈夫曼编码

1- 由原文件创建目标文件,并为目标文件更名增加新后缀

同博客 哈夫曼2- 对文件进行哈夫曼压缩并处理原文件的第一部分,新产生的目标文件的后缀更改为.dehuf
且新增函数判断此处原文件是否为.mecHuf的文件
在这里插入图片描述

boolean isHuffmanFile()函数将会打开原文件,并逐个读取前三个字符分别与m,e,c比较是否相等,此函数基于先前已将经过哈夫曼编码的文件的文件头前三个字符设置成m,e,c

2- 进行哈夫曼解码的前几个必须步骤

想要进行解码,得到原先的文件,必须先构建哈夫曼树,由哈夫曼树再进行解码过程,所以先读取文件头内的信息,再获取原文件中出现的字符及其频度,构建哈夫曼表来解码

先将原文件的文件头读入到类型为FILE_HEAD的fileHead中
在这里插入图片描述

然后获取原文件的字符及其出现频度并打印
在这里插入图片描述
在这里插入图片描述
最后再进行创建哈夫曼表,进行哈夫曼编码
接着用这些进行解码

3- 进行哈夫曼解码

进行文件哈夫曼解码的过程类似对字符串哈夫曼解码的过程
解码必须建立在已经创建好哈夫曼表的基础上
在这里插入图片描述
实际上编码和解码的关键都是创建好哈夫曼树,不断遍历到子叶结点并处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值