- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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附 录(关键部分程序清单)
课程设计总结:
通过此次课程设计,使我更加扎实的掌握了有关哈夫曼编码方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于
您可能关注的文档
最近下载
- 92010083-A02-(金鼎 CoolMaster R410A2.0风冷系列室内机用户手册-触摸屏).pdf VIP
- 临床药物治疗学(暨南大学)临床药物治疗学绪论.ppt VIP
- 安全操作规程培训课件.ppt VIP
- 化工设备机械基础1(2学时) 幻灯片.ppt VIP
- 临床药物治疗学第01章_论精美生物医学.ppt VIP
- 急诊危重症患者院内转运共识———标准化分级转运方案.pdf VIP
- 带状疱疹后神经痛研究进展.docx VIP
- 红楼梦之十二金钗完美攻略.pdf
- 智能配电网故障快速识别及处置方法的深度剖析与实践探索.docx VIP
- 《旅游企业财务管理》 教案全套 项目1--10 旅游企业财务管理概述---旅游企业预算管理.doc
文档评论(0)