数据结构——实验四哈夫曼树与哈夫曼编码(共6页).doc
《数据结构——实验四哈夫曼树与哈夫曼编码(共6页).doc》由会员分享,可在线阅读,更多相关《数据结构——实验四哈夫曼树与哈夫曼编码(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软 件 学 院哈夫曼树与哈夫曼编码实验报告课程名称: 数据结构 姓 名: 郑斌 学 号: 7 班 级: 卓越131 专心-专注-专业实验四 哈夫曼树与哈夫曼编码一、实验目的1、使学生熟练掌握哈夫曼树的生成算法。2、熟练掌握哈夫曼编码的方法。二、实验内容本次实验提供3个题目,难度相当,学生可以根据自己的情况选做,其中题目一是必做题,其它选作!题目一、哈夫曼树和哈夫曼编码问题描述一电文,有若干个不同字符,要求从终端输入这些不同字符及其出现的频率,然后对这些字符进行哈夫曼编码,并输出。测试数据利用教材P.148 例62中的数据调试程序 (可自己设定测试数据)。 选作内容1、
2、打印出该哈夫曼树2、若从终端输入任意一段电文(假设仅为26个大小写英文字母),试编程高效地求出该段电文的哈夫曼编码。提示:如何快速统计不同字符的出现频率3、译码:将上述1的编码结果还原成电文。三、算法设计1) 本程序包含三个模块1 void Select(HuffmanTree HT,int i,int &s1,int &s2) /选择函数2 voidHuffmanCoding(HuffmanTree&HT,HuffmanCode&HC,int *w,int n)w存放n个权值, 构造哈夫曼树p, 3 Void Huffmancode(HuffmanTree &HT,HuffmanCode &
3、HC,int n)求出哈夫曼编码hc并输出哈弗曼编码四、 实验结果图1-1 输入哈弗曼树的权值图1-2 显示哈弗曼树表与其编码五、总结通过做哈弗曼树实验让对最优二叉树这种结构有了更深的了解和应用,对我以后的编程产生了比较深远的影响。六、源程序(带注释)#include#include#include#include#includeusing namespace std;typedef struct int weight; int parent,lchild,rchild;char charr;HTNode,*HuffmanTree;typedef char *HuffmanCode;void
4、Select(HuffmanTree HT,int i,int &s1,int &s2) int j,k=1; while(HTk.parent!=0)k+;s1=k;for(j=1;j=i;+j)if(HTj.parent=0&HTj.weightHTs1.weight)s1=j;k=1;while(HTk.parent!=0|k=s1)k+;s2=k;for(j=1;j=i;+j)if(HTj.parent=0&HTj.weightHTs2.weight&j!=s1)s2=j;void HuffmanCoding(HuffmanTree &HT,int *w,int n)int m,i,s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 四哈夫曼树 哈夫曼 编码
限制150内