欢迎来到天天文库
浏览记录
ID:30058601
大小:18.24 KB
页数:7页
时间:2018-12-26
《哈夫曼编码数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划哈夫曼编码数据结构实验报告 实验报告 数据结构实验报告 学院自动化学院学号姓名 日期XX-12-09 实验目的 1、掌握哈夫曼编码原理; 2、熟练掌握哈夫曼树的生成方法; 3、理解数据编码压缩和译码输出编码的实现;4、掌握二叉树的基本3操作。 实验内容 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数
2、据进行译码。对于双工信道,每端都需要一个完整的编/译码系统。试为这样的信息收发站设计一个哈夫曼编/译码系统。 实验要求 1)初始化。利用下表给出的字符集和频度的=;实际统计数据建立哈夫曼树,并将它存于文件hfmTree中; 2)编码。利用已建好的哈夫曼树,对以下报文进行编码,结果存入文件CodeFile中;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能
3、及个人素质的培训计划 报文内容:THISPROGRAMISMYFAVORITE 3)译码。利用已建好的哈夫曼树,对文件CodeFile中编码后的报文进行解码,结果存入文件Textfile中; 4)输出。输出字符集中每个字符的哈夫曼编码;输出原始报文,及其编码文件CodeFile和解码文件Textfile的内容。 扩展要求:将2)的编码结果以二进制形式存入CodeFile中,输出原始报文长度和编码后的报文长度。 1需求分析 将实验要求中的表格写在文件“”中,程序初始化时从该文 件中读取字符及其频度,并据此建立Hfm
4、树,生成编码表,打印出编码表;编码:用上一步生成的编码表,对报文进行编码,考虑到数据压缩性,这 一步将编码结果以二进制文件进行存储,文件名为CodeFile; 解码:从文件CodeFile中读入编码后的报文,利用建立好的Hfm树对其 进行一一解码,输出解码结果,同时将结果存入中; 2概要设计目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培
5、训计划 因本次实验涉及许多字符串的操作,文件读写,并且除了霍夫曼树外,还用到了许多其他数据结构,而本次实验重点在霍夫曼树上,为了省去编写其他数据结构的时间,本次实验选用了C#语言和.NetFrameWork来实现。自定义数据结构和类: 类 字段 方法 Node(+1 重载) Node类:表示霍夫曼树的一个节点,在C#结构体是值类型,类是引用类型,故必须将结点定义成类;成员变量: publicchardata=' ';//该结点对应的欲编码的字符 publicdoubleprobability;//频度,出现
6、概率,即结点的权重publicNodeleft=null;//左子结点publicNoderight=null;//右子结点 publicboolisAccess=false;//用于标记是否已被访问过publicintid=0;//独一无二的id,用于唯一标识一个结点 staticintcurId=0;//每创建一个新Node时,都自动分配给其一个id,这个id逐个加1,防止出现完全相同的节点导致无法比较大小 方法:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保
7、其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 此外为了排序方便,实现了IComparable接口的CompareTo函数,定义结点之间的比较大小规则,根据实际需求,首先比较频度,如果一样则通过唯一标识的id加以区分。 HfmTree类:表示一颗Hfm树 成员:publicNoderoot=null;//树的根结点 方法:publicHfmTree(Node[]nodes)//根据结点数据构造Hfm树 publicHfmTree(
8、stringfileName)//根据文件里的数据构造Hfm树publicDictionaryCreateCodeTable()//创建编码表,为每个字符创建一个编码 publicstringDeCode(stringcode)//根据输入的二进制编码进行解码,还原文本
此文档下载收益归作者所有