当前位置:文档之家› 课程设计报告哈夫曼编码

课程设计报告哈夫曼编码

课程设计报告哈夫曼编码
课程设计报告哈夫曼编码

课程设计

题目哈夫曼编码

学院计算机科学与技术

计算机科学与技术

指导

教师

20 0 0

10 年7 月2 日

课程设计任务书

学生姓名:拉巴珠久专业班级:计算机0806

指导教师:姚寒冰工作单位:计算机科学系

题目:哈夫曼编码

初始条件:

输入一段英文字符,试为该文中的每个字符编制相应的哈夫曼码。

(1) 1:初始化(Initialization )。对输入的一段央文中的每个字符统计其权值,建立哈夫曼树;

(2) E:编码(Encoding )。利用已建好的哈夫曼树,对每个字符进行编码。

(3) D:译码(Decoding )。利用

已建好的每个编码,对输入的一个由0、1组成的序列进行译码;

(4) P:印代码文件(Print )。将每个字符编的哈夫曼码和译码结果显示在终端上。

测试用例见题集p149。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 课程设计报告按学校规定格式用A4纸打印(书写),并应包含如下内容:

1、问题描述

简述题目要解决的问题是什么。

2、设计

存储结构设计、主要算法设计(用类C语言或用框图描述)、测试用例设计;

3、调试报告

调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。

4、经验和体会(包括对算法改进的设想)

5、附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些测试数据和运行输出,

6、设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。

时间安排:

1、第18周(6月28日至7月2日)完成。

2、7月2日08 : 30到计算中心检查程序、交课程设计报告、源程序( CD盘)。

指导教师签名:年月日系主任(或责任教师)签名:年月日

目录

1设计题目 (1)

2问题描述 (1)

3.1数据结构设计 (1)

3.2主要算法设计 (3)

3.3测试用例设计 (6)

4调试报告 (7)

5结束语 (7)

六、课程设计参考资料 (8)

附录 (9)

F1源代码 (9)

F2运行结果 (16)

哈夫曼编码

1设计题目

哈夫曼编码

2问题描述

输入一段英文字符,试为该文中的每个字符编制相应的哈夫曼码。

(1)I:初始化(Initialization )。对输入的一段英文中的每个字符统计其权值,建立哈夫曼树;

(2)E:编码(Encoding)。利用已建好的哈夫曼树,对每个字符进行编码。

(3)D:译码(Decoding)。利用已建好的每个编码,对输入的一个由0、1组成的序列进行译码;

(4)P:印代码文件(Print )。将每个字符编的哈夫曼码和译码结果显示在终端上。

3 ?设计

3.1数据结构设计

抽象数据类型二叉树的定义如下:

ADT Bi naryTree{

数据对象D:D是具有相同特性的数据元素的集合。

数据关系R:

基本操作P:

InitBiTree (&T);

操作结果:构造空二叉树T o

DestroyBiTree (&T);

初始条件:二叉树T存在。

操作结果:销毁二叉树T o

计算机科学与工程学院CreateBiTree (&T,definition );

初始条件:definition给出二叉树T的定义。

操作结果:按definition构造二叉树T。

ClearBiTree (&T);

初始条件:二叉树T存在。

操作结果:将二叉树T清为空树。

BiTreeEmpty (T);

初始条件:二叉树T存在。

操作结果:若T为空二叉树。则返回TRUE,否贝U FALSE

BiTreeDepth (T);

初始条件:二叉树T存在。

操作结果:返回T的深度。

Root (T);

初始条件:二叉树T存在。

操作结果:返回T的根。

Value (T, e);

初始条件:二叉树T的存在,e是T中某个结点。

操作结果:返回e的值。

Assign (T, &e, value);

初始条件:二叉树T存在,e是T中某个结点。

操作结果:结点e赋值为value。

Pare nt (T, e);

初始条件:二叉树T存在,e是T中某个结点。

操作结果:若e是T的非根结点,贝U返回它的双亲,否则返回“空”。

DeleteChild (T, p , LR);

初始条件:二叉树T存在,p指向T中某个结点,LR为0或1。

操作结果:根据LR为0或1,删除T中p所指结点的左或右子树。

相关主题
文本预览
相关文档 最新文档