哈夫曼编码的JAVA实现课程设计
《哈夫曼编码的JAVA实现课程设计》由会员分享,可在线阅读,更多相关《哈夫曼编码的JAVA实现课程设计(8页珍藏版)》请在毕设资料网上搜索。
1、 1 哈夫曼编码的哈夫曼编码的 JAVAJAVA 实现课程设计实现课程设计 目目 录录 摘 要 2 一、问题综述 2 二、求解方法介绍 3 三、实验步骤及结果分析 4 四、程序设计源代码 5 参考文献 8 2 摘要摘要 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降 低传输成本,试用 java 语言设计一个哈夫曼编码系统。通过本课程设计,应使 学生掌握哈夫曼编码的特点、储存方法和基本原理,培养学生利用 java 语言正 确编写程序及调试程序的能力,运用数据结构知识解决实际问题的能力。 关键字:哈夫曼编码 JAVA 语言 类 方法 一、问题综述 1 哈夫曼编码的算法思想 哈夫
2、曼编码也称前缀编码,它是根据每个字符出现的频率而进行编码的,要 求任一字符的编码都不是其它任意字符编码的前缀且字符编码的总长度为最短。 它主要应用于通信及数据的传送以及对信息的压缩处理等方面。 哈夫曼编码的基 础是依据字符出现的频率值而构造一棵哈夫曼树, 从而实现最短的编码表示最常 用的数据块或出现频率最高的数据,具体的方法是: 1.1 建立哈夫曼树 把N 个字符出现的频率值作为字符的权值,然后依据下列步骤建立哈夫曼 树。 1.1.1 由N 个权值分别作N 棵树的根结点而形成一个森林。 1.1.2 从中选择两棵根值最小的树T1 和T2 组成一棵以结点T 为根结点的 增长树,根结点T = T1
3、+ T2 ,即新树的根值为原来两棵树的根值之和,而T1 和 T2 分别为增长树的左右子树。 1.1.3 把这棵新树T 加入到森林中,把原来的两棵树T1 和T2 从森林中删 除。 1.1.4 重复1.1.21.1.3 步,直到合并成一棵树为止。 1.2 生成各字符的哈夫曼编码 在上面形成的哈夫曼树中,各个字符的权值结点都是叶子结点,从叶子结点 开始向根搜索,如果是双亲的左分支,则用“0”标记,右分支用“1”标记,从 叶子结点到根结点所经过的分支编码“0”、“1”的组合序列就是各字符的哈夫 曼编码。 2 构造哈夫曼树的算法 1)对给定的n个权值W1,W2,W3,.,Wi,.,Wn构成n棵二叉树的初
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈夫曼 编码 JAVA 实现 课程设计
