实验6:哈夫曼树及哈夫曼编码的算法实现 - 副本.docx
《实验6:哈夫曼树及哈夫曼编码的算法实现 - 副本.docx》由会员分享,可在线阅读,更多相关《实验6:哈夫曼树及哈夫曼编码的算法实现 - 副本.docx(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验6:哈夫曼树及哈夫曼编码的算法实现实验所需 学时数2学时实验目的1)掌握哈夫曼树的基本概念及其存储结构;2)掌握哈夫曼树的建立算法;3)掌握哈夫曼树的应用(哈夫曼编码和译码)。实验内容对输入的一串电文字符实现哈夫曼编码,再对哈夫曼编码生成的代码串进行译码, 输出电文字符串。实验所需 器材计算机及VC+ 6.0软件内容要求:1、初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立哈 夫曼树2、建立编码表(CreateTable):利用已经建好的哈夫曼树进行编码,并将每个字符的编码输出。3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后
2、的字符串输出。4、译码(Decoding):利用已经建好的哈夫曼树对编码后的字符串进行译码,并输出译码结果。测试数据:输入字符串this*program*is*my*favourite完成这28个字符的编码和译码。实验结果1、演示程序运行结果。2、说明调试过程中出现的现象学生实验评价依据:优:实验认真、刻苦,有钻研精神,不无故缺席。良:能认真对待实验,不无故缺席。中:基本能认真对待实验,不无故缺席。差:对待实验不够认真,有少量迟到、早退或无故缺席现象。不及格:对待实验马虎、敷衍,经常迟到、早退或无故缺席。#include #include #define maxvalue 10000 定义最大
3、权值常量#define maxnodenumber 100 定义节点最大数#define maxbit 10 定义哈弗曼编码最大长度typedef struct定义新数据类型即节点结构int weight; 权重域int parent,lchild,rchild; 指针域htnode;节点类型标识符typedef htnode * huffmanstree; 定义哈弗曼数类型htnode htmaxnodenumber; 定义三叉链表存储数组typedef struct 定义保存一个叶子节点哈弗曼编码的结构int bitmaxbit; 定义维数组为编码域int start; 定义位置域hcno
4、detype; 定义编码类型htnode * creatstree(int n) /huffmanstree creatstree(int n) 建立哈夫曼树算法实现函数 (int ijml,m2,kl,k2; 局部变量for(i=0;i2*n-l;i+) 初始化各节点(hti.weight=0; /权重初始化为0山1由3mM二-1;根节点和给左右孩子初始化为-1hti.lchild=-l;hti.rchild=-l;)for(i=0;in;i+) 权重赋初值,由用户输入(scanf(%d,&hti.weight);)for(i=0;in-l;i+) 生成新节点构造哈夫曼树(ml=maxval
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验6:哈夫曼树及哈夫曼编码的算法实现 副本 实验 哈夫曼树 哈夫曼 编码 算法 实现
限制150内