哈夫曼树实验报告.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《哈夫曼树实验报告.doc》由会员分享,可在线阅读,更多相关《哈夫曼树实验报告.doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告实验名称 Huffman 编码专业班级 计科三班 姓名 学号指导教师 日期 2014.12.20一、实验目的熟练掌握二叉树应用(Huffman 编码)的基本算法实现。二、实验内容l 1对输入的一串电文字符实现Huffman 编码,再对Huffman 编码生成的代码串进行译码,输出电文字符串。实现功能如下: Huffman 树的建立 Huffman 编码的生成编码文件的译码三、实验要求l 设计思路:数据结构:#define n 100 /叶子结点数#define m 2*n-1 / Huffman 树中结点总数typedef struct int weight; /权值int lchil
2、d , rchild , parent; /左右孩子及双亲指针HTNode; /树中结点类型typedef HTNode HuffmanTreem+1; /0 号单元不用主要实现函数:n 统计字符串中字符的种类以及各类字符的个数的函数n 构造Huffman 树的函数n Huffman 编码的函数n 建立正文的编码文件的函数n 代码文件的译码函数n 主函数四、实验概要设计1)功能框图Huffman 树的建立Huffman从叶子到根逆向求编码编码程序Huffman 编码的生成编码文件的译码退出五. 使用说明1.运行环境:VC+ 6.02.首先选择主控菜单中的操作,即建表,然后进行其它操作六实验截图
3、七 实验体会1、构建哈夫曼树的关键在于找最小树;在 F 中选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且至新的二叉树的根结点的权值为其左右子树上根结点的权值之和。2、由于学习的不足没有实现编码文件的译码,今后会加以改进 ()3、在逆向求编码的 for 循环里犯了一个逻辑错误导致求出来的 3、4 位编码串行,尝试了多钟数据输入才找到原因所在,并加以改正,编写程序需一步一步的去调试并找到错误所在。附源程序:#include#include#include#includetypedef structchar data; /结点字符int weight; /结点权值int parent,
4、lchild,rchild; /父子结点HTNode,* HuffmanTree;typedef char * *HuffmanCode;void Select(HuffmanTree HT, int m, int& s1, int& s2)int i;s1 = s2 = 1;for(i=1; i=m; i+)if (HTi.parent=0)s1=i;break;for(i=i+1; iHTi.weight)s1=i;for(i=1; i=m; i+)if(HTi.parent=0&i!=s1)s2=i;break;for(i=i+1; i=m; i+)if(HTi.parent=0 & H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈夫曼树 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内