数据结构课程设计赫夫曼编码..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计赫夫曼编码.

课 程 设 计 报 告 课程设计名称:数据结构课程设计 课程设计题目:哈夫曼编码问题 院(系): 专 业: 班 级: 学 号: 姓 名: 指导教师: 目 录 1 课程设计介绍 1 1.1 课程设计内容与要求 1 1.2 课程设计分析与描述 1 2 系统功能模块结构图及功能介绍 2 2.1 系统功能模块结构图 2 2.2 模块功能介绍 3 2.2.1 统计频数 3 2.2.2 建树 3 2.2.3 生成编码 3 3 使用的数据结构的描述 4 3.1 栈 4 3.2 二叉树 5 4 主要函数的描述及流程图 6 4.1 creatHuffamnTree()(创建哈夫曼树) 6 4.2 huffmanCode()(生成哈夫曼编码) 7 5 程序的测试与运行 8 参考文献 10 附 录(关键部分程序清单) 11 课程设计介绍.1 课程设计内容与要求 利用哈夫曼编码来解决由A、B、C、D四个字符组成的字符串子啊压缩时产生的译码二义性问题,对字符串进行编码时,其中任一字符的编码都不能是其他字符的前缀。即要求编码为前缀编码。 实现: 1:创建哈夫曼树的结构; 2:生成哈夫曼编码; 要求: 1:使用C语言或其他面向对象语言实现; 2:按要求写出课程设计报告; 1.2 课程设计分析与描述 2 系统功能模块结构图及功能介绍 2.1 系统功能模块结构图 本系统含有统计频数、建树、生成编码四个模块,各模块之间的关系如下图1所示: 图 1:模块图 2.2 模块功能介绍 2.2.1 统计频数 在给定的字符串中统计A、B、C、D四个字符在其中出现的频数,并且把它作为该字符的权值; 2.2.2 建树 根据各个字符的权值根据哈夫曼算法建立哈夫曼树; 2.2.3 生成编码 根据建立的哈夫曼树,生成哈夫曼编码; 3 使用的数据结构的描述 3.1 栈 栈的顺序存储表示: typedef struct { SElemType * base;//栈底 SElemType * top;//栈顶 int stacksize;//栈的容量 }SqStack; 图 2:栈的示意图 3.2 二叉树 二叉树的二叉链表存储表示: typedef struct BiTNode { int data;//数据域 struct BiTNode * lchild,* rchild;//左、右孩子 }BiTNode,* BiTree; 4 主要函数的描述及流程图 4.1 creatHuffamnTree()(创建哈夫曼树) 集合F:根据给定的n个权值{w1,w2,.....wn}构成n棵二叉树的集合F={T1,T2,…..Tn},其中每棵二叉树Ti中只有一个带权为wi的根节点,其左右子树均空。 创建哈夫曼树的流程如下图4所示: 4.2 huffmanCode()(生成哈夫曼编码) 创建一空栈S,让T指向哈夫曼树的根节点。 生成哈夫曼编码的流程如下图5所示: 5 程序的测试与运行 1.程序开始界面(如下图6所示): 图6:开始界面 2.程序的输入(如图7所示): 输入一个只含A、B、C、D四个字符的字符串,回车结束。 图7:输入界面 3.程序的运行(如下图8、9所示): 参考文献 [1] 严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2007 [2] 戴艳等.零基础学算法(第二版)北京:机械工业出版社,2012.2 [3] 谭浩强.C语言程序设计(第三版) 北京:清华大学出版社,2005 [4] 张清国.C语言程序设计教程(第二版).北京:清华大学出版社,2009 [5] 张长海.C语言程序设计[M].北京:高等教育出版社,2006 [6] 吴文虎.程序设计基础(第二版).北京:清华大学出版社,2004 附 录(关键部分程序清单) 课程设计总结: 通过此次课程设计,使我更加扎实的掌握了有关哈夫曼编码方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于

文档评论(0)

stzs + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档