哈弗曼树实验报告

哈弗曼树实验报告

ID:31264214

大小:125.98 KB

页数:21页

时间:2019-01-07

哈弗曼树实验报告_第1页
哈弗曼树实验报告_第2页
哈弗曼树实验报告_第3页
哈弗曼树实验报告_第4页
哈弗曼树实验报告_第5页
资源描述:

《哈弗曼树实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、问题描述用哈夫曼编码设计一•个压缩软件,能对输入的任何类型的文件进行哈夫曼编码,产牛编码后的文件——压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件一解压文件。二、基本要求耍求编码/译码效率尽可能高。三、工具/准备工作在开始做课程设计项目前,应回顾或复习的相关内容。需要一台主算机,其中安装有Visual0+6.0、VisualO+2005、VisualO+2005Express.Dev-O-+或MinGWDeveloperStudio等集成开发环境软件。四、分析与实现在Huffman树中,叶结点应包含字符及对应权值,而

2、内部结点应含权及指向孩了的指针,因此最好采界结数据结构方式來表示结点,为此首先声明哈夫曼树结点的抽彖基类模板:〃哈決曼树结点的抽彖基类模板templateclassMyHuffNode{public://哈夫曼树结点的方法://返回结点的权值//判断结点是否为叶结点〃返冋结点的左孩子//返回结点的右孩子virtualWeightTypeWeight()=0;virtualboollsLeaf()=0;virtualMyHuffNode*Left()=0;virtualMyHuffNode*Right()=0;//设置结点的左孩子/

3、/设置结点的右孩子};对于叶结点,数据成员包含字符包权值,具体声明如2//哈夫曼树叶结点派生类模板templateclassMyLeafNode:publicMyHuffNodeprivate://哈夫曼树叶结点派工类的数据成员:CharTypecha;//叶结点包含的字符WeightTypeweight;//权值public://哈夫曼树叶结点方法声明及重载编译系统默认方法声明://构造函数模板MyLeafNode(constCharType&ch,constWeightType&w);//析构函数模板virtual~MyLea

4、fNode(){}CharTypeChar();//返冋叶结点的字符WeightTypeWeight();//返回结点的权值boollsLeaf();//判断结点是否为叶结点MyHuffNode*Right();//返冋结点的右孩子voidSetLeft(MyHuffNode*child){}//设置结点的左孩子voidSetRight(MyHuffNode*child){}//设置结点的右孩子};对于内部结点,应包含指向孩了的指向与权值数据成员,具体声明如下://哈夫曼树内部结点派生类模板templateclassMylntIN

5、ode:publicMyHuffNode{private://哈夫曼树叶结点派生类的数据成员:MyHuffNode*IChild;//左孩子MyHuffNode*rChild;//右孩子WeightTypeweight;//权值public://哈夫曼树内部结点方法声明及遁载编译系统默认方法声明:MylntlNode(constWeightType&w,//构造函数//析构函数模板virtual~MylntlNode(){}WeightTypeWeight();boollsLeaf();MyHuffNode*Left();//返冋

6、结点的左孩子MyHuffNode*Right();//返回结点的右孩子voidSetLeft(MyHuffNode*child);//设置结点的左孩子voidSetRight(MyHuffNode*child);//设置结点的右孩子};//返冋结点的权值//判断结点是否为叶结点对于哈夫曼树类模板,具体声明如下://哈夫曼树类模板templateclassMyHuffmanTreeprotected://哈夫曼树的数据成员:MyHuffNode*root;String*charCodes;MyHuffNode*pCurNode;in

7、tnum;//根//字符编码信息〃译码时从根结点到叶结点路径的为前结点//叶结点个数unsignedint(*Charindex)(constCharType&);〃字符位置映射//辅助函数模板://生成字符编码voidOear(MyHuffNode*r);//释放以r为根的树所占用空间public://哈夫曼树方法声明及重载编译系统默认方法声明:MyHuffmanTree(CharTypech[],WeightTypew[],intn,unsignedint(*Chlndex)(constCharType&));//由字符,权值

8、,字符个数及字符位宣映射构造哈夫曼树virtual~MyHuffmanTree();//析构函数模板StringEncode(CharTypech);//编码LinkListDecode(StringstrCode);//译码};将各字符的编码存储

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。