您现在的位置:网站首页答辩论文论文专题

哈夫曼树的应用课程设计

  • 简介:目录题目一:哈夫曼树的应用.........................................11.需求分析.................................................12.概要设计.................................................13.详细设计......
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载
[页数] 15     [字数] 2091

[目录]
1.需求分析
2.概要设计
3.详细设计
4.调试分析
5.测试结果及运行效果
参考文献
附录 全部代码

[原文]
题目一:哈夫曼树的应用
1.需求分析
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。本次设计就是为哈夫曼树求出各符号的编码。
    (1) 输入的形式:数字
输入值的范围:大于1的数字
(2) 输出的形式:见运行结果
本演示程序中,用户可以输入键盘中的任意字符,长度为任意长,字符输入顺序不限,且允许出现重码。演示程序以用户与计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在其后。
本演示程序中,当用户输入错误时,系统会输出相应的提示。
(3) 程序所能达到的功能:
读入各个符号及其权值,建立哈夫曼树;利用建立的哈夫曼树对各符号进行编码,输出编码结果。
2.概要设计
为实现上述程序功能,应以指针存储结点。为此,需要定义一个抽象数据类型。
ADT HuffmanTree{
HuffmanTree();  构造函数
本程序的模块:
1) 主程序模块:
   Void main( ){
       初始化;
for( )
}
2) 建树模块
各模块之间的调用关系如下:
      主程序模块
       建树模块
3.详细设计
由于哈夫曼树中没有度为1的结点,则一颗有n个叶子结点的哈夫曼树共有2n-1个结点,可以存储在一个大小为2n-1的一维数组中。由于在构成哈夫曼树之后,为求编码需从叶子结点出发走一条从叶子到根的路径;而为译码需从根出发走一条从根到叶子的路径。则对每个结点而言,既需知双亲的信息,又需知孩子结点的信息。
向量HT的前n个分量表示叶子结点,最后一个分量表示根结点。各字符的编码长度不等,所以按实际长度动态分配空间。我的算法中,求每个字符的哈夫曼编码是从叶子到根逆向处理的。
主函数用伪代码表示的算法:
开始
置HT的初值为NULL
置HC的初值为NULL
置*w的初值为NULL
输出Please input n:......

[参考文献]
[1] 严蔚敏 吴伟民著.《据结构(C语言版),清华大学出版, 1999年第一版
[2] 陈一华等编.数据结构---使用C 语言,电子科技大学出版社, 1998年第一版
[3] 谭浩强.C语言程序设计(第二版).北京:高等教育出版社,2002


[原文截取]
目录
题目一:哈夫曼树的应用.........................................1
1.需求分析.................................................1
2.概要设计.................................................1
3.详细设计.................................................1
4.调试分析.................................................4
5.测试结果及运行效果.......................................5
参考文献...................................................7
附录 全部代码..............................................8
题目一:哈夫曼树的应用
1.需求分析
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时.....
查看评论 已有0位网友发表了看法
  • 验证码: