数据结构课程设计报告哈夫曼编码译码器 下载本文

哈弗曼编码译码器

专 业 班 级 :XXXX 学 号 :XXXX 姓 名 :XXXX 指 导 教 师 :XXXX 课程设计时间:XXXX

计算机专业 数据结构 课程设计任务书

学生姓名 题 目 课题性质 指导教师 设计一个哈弗曼编码译码器,实现哈夫曼树的建立,树形输出,编码和解码。 主要内容 XXXX 专业班级 XXXX 学号 XXXX 哈弗曼编码译码器 工程设计 XXXX 课题来源 同组姓名 XXXX XXXX 1.研究哈弗曼树的数据存储方式 2.实现哈弗曼编码译码器的主要算法 任务要求 3.分析算法的运行效率 4.具有良好的运行界面 5.算法具有良好的健壮性 6.按要求撰写课程设计报告和设计总结。 参考文献 1.《数据结构(C语言版)》,严蔚敏、吴伟民,清华大学出版社,1997. 审查意见 指导教师签字: 教研室主任签字: 年 月 日

1 需求分析

设计一个哈弗曼编码译码器,实现哈夫曼树的建立,树形输出,编码和解码。 2 概要设计

建立哈夫曼树 查看哈夫曼编码 树形输出哈夫哈夫曼文件编码 哈夫曼文件解码帮助退出系统 main

3 运行环境(软、硬件环境)

1) 硬件:PC机

2) 操作系统:Windows 2000/XP/2003 3) 编译环境:Visual C++6.0

4 开发工具和编程语言

开发工具:VISCALL c++6.0; 编程语言:C语言。

5 详细设计

#include #include #include

typedef struct // 结点的结构 { unsigned int weight; // 结点的权值

unsigned int parent,lchild,rchild;

}HTNode,*HuffmanTree; // 动态分配数组存储哈夫曼树

typedef char **HuffmanCode; // 动态分配数组存储哈夫曼编码 HuffmanTree HT; HuffmanCode HC; int n=8; const char menu[]=

\

|\\n\ |\\n\ |\\n\ |\\n\ |\\n\ |\\n\

\

\树形输出哈夫曼树

\哈夫曼文件编码

\哈夫曼文件解码

\帮助

\|\\n\

退出系统

const char helpsabout[]=

\

|\\n\

:

\利用哈夫曼编码进行通信可以大大提高信道的利用率,缩短信息的传输时间,降低 |\\n\

\传输成本。但是,这要求在发送端通过一个编码系统对待传输的数据预先编码,在接收 |\\n\

\端将传来的数据进行译码(复原)。对于双工信道,每端都要有一个完整的编/译码系 |\\n\ |\\n\ |\\n\

\统。本系统即是为这样的信息收发站写一个哈夫曼码的编/译系统。

\

\

void Huffmantree(); void Huffmancode();