关于霍夫曼编码.DOC

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于霍夫曼编码

+ 数据结构与算法大作业 题目:哈夫曼编码/译码器 姓名 学号 学院 专业 分工(按章节描述) 王萌电信 信息安全 C程序、CIN接口、报告 曹荣珍电信 通信 C程序及调试 李乃鹏电信 通信 前面板设计、报告 丁志东电信 通信 前面板设计、报告 2014年5月22日 目录 目录 2 1课程设计的题目 3 1.1 题目描述及基本要求 3 1.2题目说明 3 1.3 进一步完成内容 3 2大作业要达到目的(需求) 4 2.1 编程环境介绍 4 2.2 大作业目的 4 2.2 大作业需求 4 3 Labview前面板及程序设计 5 3.1 前面板设计图 5 3.2 前面板功能介绍 5 3.3 后面板显示图 6 4 CIN接口设计 7 4.1 CIN节点的介绍 7 4.2 CIN节点的使用 7 4.3编译.c源文件为.lsb文件 7 5 C语言部分程序设计 9 5.1 C程序框图 9 5.2 C语言仿真结果 9 6整体设计总结 11 6.1 关于霍夫曼编码 11 6.2 关于labVIEW+C的开发模式 11 7心得体会 12 1课程设计的题目 1.1 题目描述及基本要求 设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。 (1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中); (2)分别采用动态和静态存储结构; (3)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; (4)编码:利用建好的哈夫曼树生成哈夫曼编码; (5)输出编码; (6)设字符集及频度如下表: 字符 空格 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1 1.2题目说明 哈夫曼树,也称最优二叉树,是指对于一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树。在哈夫曼树中,每个字符结点都是叶结点,它们不可能在根结点到其它字符结点的路径上,所以一个字符的哈夫曼编码不可能是另一个字符的哈夫曼编码的前缀,从而保证了译码的非二义性。 1.3 进一步完成内容 (1)译码功能。 (2)显示哈夫曼树。 (3)界面设计的优化。 2大作业要达到目的(需求) 2.1 编程环境介绍 (1)本实验基于C语言来开展。 (2)编程环境采用Labview2009和Visual C++6.0。 (3)程序的主体部分用Visual C++6.0进行编译,生成lsb文件。 (4)程序的输入输出部分用Labview完成。在Labview中的CIN中加载lsb文件。 (5)程序的演示均在Labview中完成。Labveiw是最易用的图形化软件开发环境之一,其采用的语言也是最容易使用的图形化开发语言之一,非常适合直观展示输入与输出的效果。 2.2 大作业目的 (1)巩固构造哈夫曼树的算法。 (2)设计实验用程序实现哈夫曼树的构造。 (3)熟悉用先序、中序或后序的访问方法得到个叶子结点的哈夫曼编码。 2.2 大作业需求 (1)二叉树的运用。对所学知识有一定的掌握,并且可以广泛应用,对二叉树,哈夫曼树有最基础的认识并且可以熟练运用。 (2)labview的运用。知道如何创建前面板,选择合适的控件实现题目要求。 (3)CIN接口控件的运用。知道如何建立labview与C语言之间的连接。 3 Labview前面板及程序设计 3.1 前面板设计图 由上图可见,前面板主要由三个部分构成,参数输入区、编译码区和哈夫曼树演示区。参数输入的设计信源符号的数量有上限限制,这里只以最多6个信源符号为例。 3.2 前面板功能介绍 (1)参数输入区 参数输入区包括信源符号以及对应的信源符号的概率,当输入完成后需要点击Test按钮来测试所输入的信源符号以及对应概率是否符合要求,符合要求时Test按钮右边的显示灯会变绿,否则变为红色,默认状态下是红色。这里有几种情况输入不符合要求的,比如:信源符号与概率不一一对应、概率之和不等于1。对输入数据进行有效性检查是必要的,它能够防止后续编译码出现异常。信源符号输入区以及先验概率输入区是使用两个不同的簇,信源符号编辑框为字符串输入,先验概率编辑框为数值输入。 (2)编码译码区 编码显示和译码显示使用两个簇来使结构更加清晰,两者编辑框都是字符串显示。字符串显示框默认下是灰色的,而字符串输入框是白色的。在进行数据有效性检查后,当点击编码时,对应信源符号的编码就会出现在框中。点击译码时,编码

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档