用哈夫曼编码实现文件压缩(代码+报告)
数据结构课程设计用哈夫曼编码实现文件压缩: 一、实验题目: 用哈夫曼编码实现文件压缩 二、实验目的: 1、了解文件的概念。 2、掌握线性链表的插入、删除等算法。 3、掌握Huffman树的概念及构造方法。 4、掌握二叉树的存储结构及遍历算法。 5、利用Huffman树及Huffman编码,掌握实现文件压缩的一般原理。 三、实验设备与环境: 微型计算机、Windows 系列操作系统 、Visual C++6.0软件 四、实验内容: 根据ASCII码文件中各ASCII字符出现的频率情况创建Haffman树,再将各字符对应的哈夫曼编码写入文件中,实现文件压缩。 五、概要设计: 1、数据结构类型定义 /*****Huffman结构定义**********/ typedef struct node { long w;//w为权值 short p,l,r; //p为parent,l为左孩子,r为右孩子 }htnode,*htnp;//动态分配数组存储哈夫曼树 /*****Huffman编码表结构定义*****/ typedef struct huffman_code { unsigned char len;//长度 unsigned char *codestr; }hufcode; typedef char **huffmancode;//动态分配数组存储哈夫曼编码表 2、本程序的构成,共有14个函数,一个菜单函数 int initial_files(char *source_filename,FILE **inp,char *obj_filename,FILE **outp); //1.初始化文件名 char *create_filename(char *source_filename,char* obj_filename); //2.创建文件名 int compress(char *source_filename,char *obj_filename); //3.压缩文件
用户评论