huffman总结

              Dzj's Huffman coding summary

Preview

哈弗曼编码目的:

文件压缩减少占用空间大小

主要分为两大模块: 1压缩 2解压 

 

哈弗曼编码思路:

压缩:

读文件--》统计权值等相关数据--》建立哈夫曼树--》通过哈夫曼树得出各个叶子的编码值-》将编码写入文件(伪编码)--*通过读伪编码文件将其转换为字节流写入压缩文件中

解压:

读压缩文件--*将字节流转换为位流存入缓冲区--》通过哈夫曼树或编码值表译码--》写入解压文件中

*cc++语言使用以字节为最基本单位,要写入位流编码,就需要先将编码没8个位转化成一个字节(ascll)再通过字节流写入文件,这样就达到了间接存入二进制编码的目的

注意事项:

1.使用指针,必须是在不得已,思路清晰或能准确了解他的作用范围,否则千万别用!!!!!

2.二进制文件与文本文件的转换需考虑是否有换行符,而在编码方面最好最好要有二进制方式读取和写入。

3.写程序前一定有清晰的思路和流程,并把它写成流程图。

4.只要写一些比较大的程序时(对于我来说),一定要遵循面向对象的思想或模块化,结构化思想编写,否则,调试维护时是一个灰常灰常有难度的工程,比写代码还要大!!

5.注意写出的代码要有可移植性,虽然占用空间大,但这是必要要做的,因为以后可能会需要自己以前写的程序。

6.变量名和注释要取的准确到位(不足)

7.每个函数结束前,先考虑回收特别是指针问题的回收和防止野指针的出现

8.申请空间是首先要检查是否能够申请到还有文件是否为空等极端条件

9.Char范围-128~127

10...................................

凡是重基础(特重要!!!!!!!

缺陷:

1.为了添加编码的文本显示,系统损失了一半时间去操作中间文件的写入。----可优化

2.程序结束时,指针没有进行全面回收和封杀(null)

3.界面不友好,只做出了基本的主体。

可扩展性:

1.程序加密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值