哈夫曼树的应用数据结构课程设计.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》课程设计报告 题 目: 哈夫曼树应用 学生姓名: 谢辉 学 号: 201317010201 专业班级: 计科 13102 同组姓名: 赵丽娜 指导教师: 徐晓蓉 设计时间: 2014 年下学期第 18 周 指导老师意见: 目录 评定成绩: 签名: 日期: 一、 需求分析 1. 分析问题 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降 低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在 接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的 2 信道),每端都需要一个完整的编/译码系统。为这样的信息收发站写一个哈夫曼 码的编/译码系统。 2. 确定解决方案 设计建立带权的哈夫曼树,确定哈夫曼树的类与成员函数,以及各函数之间的调 用关系,采用动态数组的存储结构存储所需要的数据,通过不同的函数来实现编 码,译码以及打印二进制编码、哈夫曼树,把不同的数据存入不同的 txt 文件中, 通过主函数调用来实现功能检测。 3. 输入的形式和输入值的范围 手动或者从文本中读入数据的形式初始化哈夫曼树,从键盘中或者文件中读 入数据,以字母 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 中。 测试数据: (1) 利用下面这道题中的数据调试程序。某系统在通信联络中只可能出现八种 字符,其概率分别为 0.25 ,0.29 ,0.07 ,0.08 ,0.14 ,0.23 ,0.03 ,0.11 , 试设计哈夫曼编码。 (2 )用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报 3 文的编码和译码:“THIS PROGRAM IS MY FAVORITE” 。 字符 空格 A B C D E F G H I J K L M 频度 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) 编码结果以文本方式存储在文件 CodeFile 中。 (2 ) 用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q” ,表 示退出运行 Quit 。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单, 直至某次用户选择了“Q”为止。 (3 ) 在程序的一次执行过程中,第一次执行 I ,D 或 E 命令之

文档评论(0)

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

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

1亿VIP精品文档

相关文档