- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计----Huffman树编码和译码
高级语言课程设计题目: 数据结构课程设计Huffman树编码和译码班级学号姓名计092090698刘伟计092090703苏超计093090741纪乐昌2011年06月29日·北京目录一设计题目二. 设计目的三. 算法思想分析四. 算法描述与实现1)结构定义2)程序算法描述:3)算法的实现方法4)结构框架5)源代码6)运行结果分析五.结论一.设计题目:题目2:哈夫曼编码和译码问题描述:利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。基本要求:一个完整的系统应具有以下功能:(1)初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,(选做:并将它存于文件hfmTree中)。并显示出每个字符的编码。(2)编码(Encoding)。利用已建好的哈夫曼树(选做:如不在内存,则从文件htmTree中读入),对输入的字符串文本(选做:对文件ToBeTran中的正文)进行编码,(选做:然后将结果存入文件CodeFile中。)并显示在屏幕上。(3)译码(Decoding)。利用已建好的哈夫曼树将输入的代码进行译码(选做:将文件CodeFile中的代码进行译码,结果存入文件TextFile中。),并显示在屏幕上。(4)打印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式显示在屏幕上。二. 设计目的:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。三. 算法思想分析:通过C++算法建立一个类HuffmnanTree,在此类中定义并实现huffman树的建立(CreateHuffmanTree()),编码(Encoder()),译码(Decoder()),输出等一系列方法。并通过主函数调用类中的各种方法来实现需求。四. 算法描述与实现1.算法描述:1)结构定义:2) 程序算法描述:Class HuffmanTree中的算法及类型定义private:HuffmanNode *Node; 即Node[],用来存放哈夫曼树int LeafNum; 源码个数Public:HuffmanTree(); 构造函数~HuffmanTree(); 析构函数void CreateHuffmanTree();创建并初始化void CreateHuffmanTreeFromKeyboard();从键盘建立并初始化void CreateHuffmanTreeFromFile();从文件(hfmtree)中载入void Encoder();编码(存入CodeFile.dat)void Decoder(); 译码(存入TextFile.dat)void PrintCodeFile();屏幕显示编码结果void PrintHuffmanTree();直观显示Huffman树void PrintHuffmanTree_aoru(int T,int layer=1); 凹入法实现直观显示Huffman3)算法的实现方法void CreateHuffmanTree()描述:void CreateHuffmanTreeFromKeyboard();用了几个for语句实现功能:for1 : 读入哈夫曼树的叶子结点信息.For2 : 循环建立哈夫曼树内部结点。For:将结点排序For3 : 产生所有叶子结点中字符的编码。将编码Node[i].code还实现将建立好的哈夫曼树写入文件hfmTree.dat。void HuffmanTree::CreateHuffmanTreeFromFile()通过文件的读和写实现文件建立Huffman树。void HuffmanTree::Encoder()函数功能:为哈夫曼树编码函数。判断是否存在Huffman树输入字符串。(从文件导入或键盘输入)编码(通过Node[i].code保存Huffman编码)将编码存入CodeFile.dat。void HuffmanTree::Decoder()函数功能:对哈夫曼树进行译码从文件中读入Huffman树,建立编码译码转换工具(调用CreateHuffmanTreeFromFile()实现)将码文从文件Co
您可能关注的文档
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)