哈夫曼2-对文件进行哈夫曼压缩并处理原文件

1-先考虑文件名称的创立

在这里插入图片描述

这个生成新的文件,并更改目标文件的下标的程序,先需要创建两个文件名,在判断源文件是否存在,最后分情况将源文件的值拷入目标文件,并更改新产生的文件的后缀

在这里插入图片描述
在这里插入图片描述
主函数调用
argc是主函数参数个数,argv[n]是具体第几个参数,在命令行里输入
在这里插入图片描述

2- 对原文件内的所有字符逐个读入目标文件并编码压缩

在这里插入图片描述
这样就完成了对文件的哈夫曼压缩

3- 解压缩需要的思考和条件

假如我们将已经压缩好的文件发到另外一个人那里,通过UE打开,由于没有创建的哈夫曼树,我们需要将 出现的字符 和其频度也要逐字节写入targetFile中,但是出现字符及频度 紧接着就是哈夫曼编码,且需要让接收者识别“经过哈夫曼压缩的文件”我们需要标识,需要在压缩时,把sourceFile一些接收者,需要解压缩要知道的内容写到 “文件头” 中

在这里插入图片描述
创建一个文件头
在这里插入图片描述
flag 文件标识,alphaCount 共计字符个数, bitCount 共计二进制位数找结束点 offset(offset的大小就是文件头和count个FREQ的大小和)作为开始编码点,同时将FREQ中的内容(字符及其频度)写入targetFile

在这里插入图片描述
这样压缩后的二进制文件也可以传达这些解压缩的基本信息,只要接收者能得到这些信息,那么就可以通过重建哈夫曼树,来完成解压缩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值