- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮数据结构实验3哈夫曼编码
数据结构实验报告
3
实验名称: 实验 ——哈夫曼编码
学生姓名:
班 级:
班内序号:
学 号:
2013 11 24
日 期: 年 月 日
1.实验要求
利用二叉树结构实现赫夫曼编/解码器。
基本要求:
1 (Init) s
、初始化 :能够对输入的任意长度的字符串 进行统计,统计每个
字符的频度,并建立赫夫曼树
2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每
个字符的编码输出。
3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的
字符串输出。
4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译
码,并输出译码结果。
5、打印(Print):以直观的方式打印赫夫曼树 (选作)
6、计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼
编码的压缩效果。
2. 程序分析
2.1存储结构:
structHNode
{
char c;//存字符内容
intweight;
int lchild,rchild,parent;
};
structHCode
1
{
char data;
char code[100];
};//字符及其编码结构
classHuffman
{
private:
HNode*huffTree;//Huffman树
HCode*HCodeTable;//Huffman编码表
public:
Huffman(void);
void CreateHTree(int a[],intn);//创建huffman树
void CreateCodeTable(charb[],intn);//创建编码表
voidEncode(char *s, string *d);//编码
voidDecode(char *s,char *d);//解码
voiddiffer(char *,intn);
char str2[100];//数组中不同的字符组成的串
int dif;//str2[]的大小
~Huffman(void);
};
结点结构为如下所示:
三叉树的节点结构:
structHNode//哈夫曼树结点的结构体
{ intweight;//结点权值
intparent;//双亲指针
int lchild;//左孩子指针
intrchild;//右孩子指针
char data;//字符
};
示意图为:
intweight intparent int lchild intrchild Char c
编码表节点结构:
2
structHCode//编码表结构体
{
char data;//字符
char code[100];//编码内容
};
示意图为:
char data char code[100]
基本结构体记录字符和出现次数:
struct node
{
int num;
char data;
};
示意图为:
int num char data
2.关键算法分析
(1).初始化:
伪代码:
1. 输入需要编译的文本内容
2. 将输入的内容保存到数组 str1 中
3. 统计出现的字符数目,并且保存到变量count 中
4. 统计出现的不同的字符,存到str2 中,将str2 的大小存到dif 中
时间复杂度O(n!)
(2).创建哈夫曼树
算法伪代码:
1. 创建一个长度为2*n-1
您可能关注的文档
- 北京顺鑫控股集团有限公司2014年年度报告.pdf
- 北京高中信息技术2012-2013会考复习-选择339题.pdf
- 北京马诺生物-艾滋病无创检测试剂的研发、生产和销售及技术服务.pdf
- 北大-信用管理与评分模型2013-4read.pdf
- 北塔EMonitor2.0安装部署手册.pdf
- 北大光华-张圣平-货币金融4金融市场本科2008PPT.pdf
- 北京超声波测厚仪和超声波测厚仪价格.pdf
- 北大光华2015届毕业生就业报告.pdf
- 北大大英四泛读翻译.pdf
- 北京邮电大学 数电 数字逻辑第六章PPT.pdf
- 第6 2课《抒发情感》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 第1 3课《“探界者”钟扬》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 第6.3课《表达观点》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 第3 2课《简单相信,傻傻坚持》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 第3 1课《青年在选择职业时的考虑》-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx
- 小学简笔画教学计划方案(精选19篇) .pdf
- 山东省潍坊市奎文区2022-2023学年七年级上学期期中数学试题 .pdf
- 2025中考历史复习人教版第二册习题.doc
- 2025中考历史复习人教版第一册习题.docx
- 2025中考历史复习人教版第五册习题.docx
文档评论(0)