合肥学院计算机科学与技术系一、问题分析和任务定义1、 题目采用哈夫曼编码思想实现英文文本的压缩与解压缩,并提供压缩前后的占用空间比
要求 1 )压缩原文件规模不小于5K 2) 提供解压缩文件后文件与原文件的相同性比较功能2、问题分析压缩过程 news
txt news1
txt 1、以读的形式打开需要压缩的一个英文本文件,把其中出现的所有字符按其在文本中出现的频率利用哈夫曼树进行编码
2、以写的形式打开一个新的文本文件,把它作为英文文本压缩后的文本文件,扫描需要压缩的英英文本文件( new
txt )中所有字符,把其对应的编码通过转换后存入新的文本文件 ( new1
txt )中
3、把需要压缩的英文文本( new
txt )中所出现的字符及其编码等原始文件的信息保存在新的文本文件中
解压缩过程news1
txt news2
txt 1、以读的形式打开一个压缩文件 news1
txt,按其中保存的原始文件的信息还原哈夫曼树及字符编码
2、 以写的形式打开一个新的文本文件,作为解压后的英文文本 news2
txt ,逐个扫描压缩文件 news1
txt中的所有字符,把其中所有转换后的编码再转换回来并与哈夫曼树中存储的字符编码比较,把其对应的字符写入news2
一个字符在文本文件中存储时占一个字节,而其二进制编码若直接存入文本文件其所占的空间不会少于一个字节
例如:假设字符E的编码为 001,若把 001 直接存入文件只能用字符串的形式, 其所占用的空间为三个字节
达不到文件压缩的目的,所以必须对编码的存储空间进行转换
3 编码转换在文本文件中字符之间是连续的,所以在文本文件中存储编码也是连续的
可以把连续的不同字符的编码存入同一个字节,再把这一个字节的二进制码转换成一个字符,把转换后的字符存储在文本文件中
二、数据结构的选择和概要设计:1 此程序采用的数据结构为顺