综合实验: 1. 问题描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个哈夫曼码的编/译码系统。 2. 基本要求 一个完整的系统应具有以下功能: (1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 (2) E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 (3) D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件Textfile中。 (4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。 (5) T:印哈夫曼树(Tree printing)。将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 3. 测试数据 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAME IS MY FAVORITE”。 字符 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1
2019-12-21 22:14:23 140KB C++ 哈夫曼树 文件压缩解压
1
开源的压缩算法,可以直接在代码中实现,bzip2的压缩时间不是最快的,但是压缩的效率基本是最好的。而且封装了许多简化操作的接口。
2019-12-21 22:05:27 1.35MB 开源的压缩解压算法
1
使用VC实现zip的压缩、解压功能,支持文件、文件夹、密码。 VC use zip unzip and document compression and decompression code, support file, directory.
2019-12-21 22:04:34 236KB VC zip
1
一个huffman 压缩解压算法源码
2019-12-21 21:58:56 37KB 一个huffman压缩解压算法源码
1
数据结构实践课-哈夫曼树-文件的压缩解压(MFC)
2019-12-21 21:43:05 76.7MB MFC 哈夫曼 数据结构 压缩解压
1
google snappy 快速压缩算法,c语言版本 速度比zlib快10倍,内存占用大概多25%
2019-12-21 21:22:10 26KB snappy 解压缩
1
python版本为2.7.9,大家注意别下错了,里面有一个txt文件是进行压缩的,可以更改文件中的变量path1来对其他文件进行压缩与解压,代码中有详细注释,实现过程虽然简单,但是包含自己很多一些独特的想法,自己的知识产权,所以可能贵点,谢谢大家!
2019-12-21 20:58:44 69KB huffman 压缩 解压 python
1
zip 文件压缩 解压源码,c++版。已测试,100%可用! // XUnzip.cpp Version 1.3
2019-12-21 20:38:51 82KB zip unzip
1
用C++代码来实现LZW的压缩和解压的算法。压缩比可以达到20%。
2019-12-21 20:29:07 2KB LZW 压缩 解压
1
实现lzss压缩/解压算法 跨平台,可移植到单片机及ARM上.
2019-12-21 20:25:44 7KB LZSS 可移植
1