哈夫曼树的应用数据结构.doc

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

各专业完整优秀毕业论文设计图纸 《数据结构》课程设计报告 题 目: 哈夫曼树应用 学生姓名: 学 号: 201317010201 专业班级: 计科13102 同组姓名: 指导教师: 设计时间: 2014年下学期第18周 指导老师意见: 评定成绩: 签名: 日期: 目录 一、 需求分析 2 1. 分析问题 2 2. 确定解决方案 2 3. 输入的形式和输入值的范围 3 4.输出的形式 3 5.程序所能达到的功能 3 二、概要设计 4 1. 主程序的流程图: 4 2.程序中数据类型的定义: 4 3.各程序模块之间的层次(调用)关系: 4 三、 详细设计 5 1. 哈夫曼树存储及类的定义: 5 2.哈夫曼树的基本操作: 6 3.主函数 7 四、 调试分析和测试结果. 9 1. 测试数据及其输出结果: 9 2. 调试过程中遇到的问题及解决办法: 13 五、 总结 14 六、 参考文献 14 七、 致谢 14 八、 附录 14 需求分析 分析问题 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。为这样的信息发站写一个哈夫曼码的编/译码系统。 输入的形式和输入值的范围 手动或者从文本中读入数据的形式初始化哈夫曼树,从键盘中或者文件中读入数据,以字母A-Z代表结点,以自然数代表权值,字符串提示使用者所要执行的操作。 ?4.输出的形式? 在显示器界面上或者以文本的形式来实现程序调试的输出。 5.程序所能达到的功能? (1)I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 (2)E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 (3)D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 (4)P:打印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。 测试数据利用下面这道题中的数据调试程序。某系统在通信联络中只可能出现八种字符,其概率分别为0.25,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计哈夫曼编码。(2)用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。字符??? 空格??? A??? B??? C??? D??? E??? F??? G??? H??? I??? J??? K??? L??? M字符??? 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) 编码结果以文本方式存储在文件CodeFile中。(2) 用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q”,表示退出运行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单,直至某次用户选择了“Q”为止。(3) 在程序的一次执行过程中,第一次执行I,D或E命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行I命令,因为文件hfmTree可能早已建好。1. 主程序的流程图: ? 2.程序中数据类型的定义: 用到三组结构体,分别是哈夫曼树的动态数组存储结构*HuffmanTree,哈夫曼编码表的存储结构HuffmanCode,字符结点的动态数组存储结构wElem?以及哈夫曼树类定义class?Huffman。

文档评论(0)

店小二 + 关注
实名认证
内容提供者

包含各种材料

1亿VIP精品文档

相关文档