网站大量收购独家精品文档,联系QQ:2885784924

数据结构课程设计 哈夫曼编码的实现.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计 设计说明书 哈夫曼编码的实现 学生姓名 学号 班级 成绩 指导教师 计算机科学与技术系 2009年 3 月 2 日 数据结构课程设计评阅书 题 目 哈夫曼编码的实现 学生姓名 王 勇 学号 指导教师评语及成绩 成绩: 教师签名: 年 月 日 答辩教师评语及成绩 成绩: 教师签名: 年 月 日 教研室意见 总成绩: 室主任签名: 年 月 日 注:指导教师成绩60%,答辩成绩40%,总成绩合成后按五级制记入。 课程设计任务书 2008 —2009 学年第 一 学期 专业: 信息管理与信息系统 学号: 姓名: 课程设计名称: 数据结构课程设计 设计题目: 哈夫曼编码的实现 完成期限:自 2009 年 2 月 23 日至 2009 年 3 月 6 日共 2 周 设计依据、要求及主要内容(可另加附页): 利用哈夫曼编码进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。 基本要求: 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中); 初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 编码:利用建好的哈夫曼树生成哈夫曼编码; 输出编码; 设字符集及频度如下表: 字符 空格 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 可以根据题目要求把程序划成不同的模块,设计成菜单方式,每次执行一个模块后返回菜单。作出本算法的流程图和主要模块。 指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日 摘要 针对减少通信系统中字符编码所需要的二进制位长度,提出用于产生不定长的前缀编码算法,所谓前缀编码是指任一编码都不是其他编码的前缀。前缀编码算法的基本事项就是对于出现概率较大的字符采用短编码方式,而出现概率较小的字符采用长编码方式。在网络传输数据过程中个别数据出现的次数特别多,而有些则不怎么出现。如果对数据用同样的长度定义则会造成相当大的浪费,因而需要构建一种可根据数据出现频率生成长度不同但又不会在传输过程中出现混淆的编码。哈夫曼编码就是能完成这项工作的一种编码。而此次设计的哈夫曼树编码器,的。本器采用C作为软件开发环境,实现。1 课题描述 1 2 问题分析和任务定义 2 3 逻辑设计 3 4 详细设计 4 5 程序编码 6 6 程序调试与测试 10 7 结果分析 12 8 总结 14 参考文献 15 1 课题描述 哈夫曼哈夫曼n种字符出现的频率作权即为哈夫曼编码。 所设计的哈夫曼哈夫曼哈夫曼问题分析和任务定义n个字符的哈夫曼n个叶子结点的哈夫曼哈夫曼 typedef struct // 结点数据结构 { char elem; // 结点信息 int m_weight; // 存放权值 int parent,lchild,rchild; // 双亲结点,左孩子,右孩子 }; 其次,根据哈夫曼1的结点,所以当一颗哈夫曼2*n-1个,可以用大小为2*n-1的一维数组来储存它。 程序主要算法:使用贪心算法构造最有前缀码的编码。 贪心算法采用的是逐步构造最优解的方法:在当前状态下一旦选定一个分量,就不再重试其他的可行性;它并不从整体最优上作出考虑,它的选择只是在贪心准则下的局部最优选择。 3 逻辑设计 图 3.1 哈夫曼编码流程图 4 详细设计//哈夫曼typedef struct 1.{ 2. Elemtype weight; /

文档评论(0)

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

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

1亿VIP精品文档

相关文档