哈夫曼树课程设计 哈夫曼树的编码,译码.docVIP

哈夫曼树课程设计 哈夫曼树的编码,译码.doc

  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文档。上传文档
查看更多
哈夫曼树课程设计 哈夫曼树的编码,译码

广东技术师范学院天河学院 算法与数据结构 课程设计报告 题 目: 哈夫曼编/译码器 设 计 者: 专业班级: 本网络101 学 号: 02 指导教师: 所属系部: 计算机科学与技术系 2012年 06月 3 日 目 录 1 问题描述及要求 1 2 需求分析 1 3 算法思想描述 1 4 概要设计 2 1.创建哈夫曼树及函数调用过程 2 2.输出哈夫曼数节点的权值的及调用过程 3 3.进行哈夫曼编码及调用过程 3 4.字符串-哈夫曼码及调用过程 4 5 详细设计 4 1.创建哈夫曼树 4 2.显示HT的终结状态 5 3.打印哈夫曼编码 5 4.打印哈夫曼树 5 5.字符串-哈夫曼编码 6 6.源程序清单 7 6 测试数据及分析 10 1.创建哈夫曼树 10 2.显示HT的终结状态 10 3.打印哈夫曼编码 10 4.打印哈夫曼树 11 5.字符串-哈夫曼编码 11 7课程设计总结 11 8 参考资料 12 哈夫曼编/译码器 1 问题描述及要求 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双工信道(即可以双向传输信息的信道),每端都需要一个完成的编\译码系统。试为这样的信息收发站写一个哈夫曼的编\译码系统。 设计要求: 1. 初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树。 2. 编码。利用已建好的哈夫曼树,对正文进行编码。 3. 译码。对编码好的内容进行译码。 4. 打印编码。 5. 打印哈夫曼树 2 需求分析 (1)再通信过程中,为了提高信道利用率,缩短信息传输时间降,低传输成本 ,需要一编译码器。 (2)此哈夫曼编/译码器应具有编和译的双向功能,即在发送端通过编码系统对传入的数据进行编码, 在接受端将数据译码.将具有这两项功能的编译码器用于双工信道,就可满足 双工信道的双向编译功能. (3) 输入某段报文时,系统将自动完成编译输出. 3 算法思想描述 1:初始化。从中端读入字符集大小n,以及n个字符和n各权值 ,建哈夫曼树,并存于hfmTree中 2:编码。利用已建好的树,对文件 ToBeTran中的正文进行编码, 然后将结果存入文件CodeFile . 3:译码。利用已建好的树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 4:印代码文件CodeFile。将文件以紧凑格式显示在终端上,每行50个代码 。 同时将此字符形式的编码文件写入文件CodePrin中。 5:印哈夫曼树。将已在内存中的树以直观的方式(树或凹入表形式)显示在终端,同时将此字符形式的哈夫曼树写入文件TreePrin中。 4 概要设计 本程序主要定义了4个函数: void CreateHT(HuffmanTree HT,int n);void preorderHT(HuffmanTree HT,int m);void GetHhffanCode(HuffmanTree HT,HuffmanCode HC,int n); void strHT(HuffmanTree HT,HuffmanCode HC,int n) 1.创建哈夫曼树及函数调用过程 函数:void CreateHT(HuffmanTree HT,int n) 功能:构造哈夫曼树 2.输出哈夫曼数节点的权值的及调用过程 函数:void preorderHT(HuffmanTree HT,int m) 功能:显示HT的终结状态 3.进行哈夫曼编码及调用过程 函数:void GetHhffanCode(HuffmanTree HT,HuffmanCode HC,int n) 功能:打印哈夫曼编码 4.字符串-哈夫曼码及调用过程 函数:void strHT(HuffmanTree HT,HuffmanCode HC,int n) 功能:输入一个字符串,显示该字符的哈夫曼编码 5 详细设计 1.创建哈夫曼树 void CreateHT(HuffmanTree HT,int n){//创建哈夫曼树 int i,k,Lnode,Rnode,Min1,Min2; if(n=1)return; HT=new HNode[2*n-1]; strread(ch); printf(请输入字符的权值\n); for(i=0;in;i++){//初始化HT printf(%c = ,ch[i]); scanf(%d,HT[i].weight); HT[i].parent=-1; HT[i].

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档