实验报告实验课名称:数据结构实验实验名称:文件压缩问题班级:20 1 32 0 12学号:姓名:时间:2015-6-9一、问题描述 哈夫曼编码就是一种常用得数据压缩技术,对数据文件进行哈夫曼编码可大大缩短文件得传输长度,提高信道利用率及传输效率
要求采纳哈夫曼编码原理,统计文本文件中字符出现得词频,以词频作为权值,对文件进行哈夫曼编码以达到压缩文件得目得,再用哈夫曼编码进行译码解压缩
二、数据结构设计首先定义一个结构体: str uct h e ad{unsig n ed c h ar b; //记录字符long count; //权重in t pa r ent,lch,r c h; //定义双亲,左孩子,右孩子c har b i ts[2 5 6]; //存放哈夫曼编码得数组}he ade r[51 2],tmp; //头部一要定设置至少51 2个,因为结点最多可达256,所有结点数最多可达 511三、算法设计输入要压缩得文件读文件并计算字符频率根据字符得频率 ,利用 H u ffman编码思想创建 Huffm a n 树由创建得 Huffm a n 树来决定字符对应得编码,进行文件得压缩解码压缩即根据H uffma n树进行译码设计流程图如图 1、1 所示
ﻩ图 1、1 设计流程图(1)压缩文件统计字符,得出统计出字符得权值n建立哈夫曼树生成二进制文件对二进制文件进行解码根据哈夫曼树编码对编码进行压缩生成对应文件根据哈夫曼树解码生成哈夫曼树输入一个待压缩得文本文件名称(可带路径)如:D:\l u\l u、txt 统计文本文件中各字符得个数作为权值,生成哈夫曼树;将文本文件利用哈夫曼树进行编码,生成压缩文件
压缩文件名称=文本文件名、CO D 如:D:\l u\lu、CO D 压缩文件内容=哈夫曼树得核心内容+编码序列fo r(i n t i=0;i