1 / 20
文档名称:

北邮信通院数据结构实验报告三哈夫曼编码器.doc

格式:doc   大小:330KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

北邮信通院数据结构实验报告三哈夫曼编码器.doc

上传人:977562398 2018/1/9 文件大小:330 KB

下载得到文件列表

北邮信通院数据结构实验报告三哈夫曼编码器.doc

文档介绍

文档介绍:数据结构实验报告
实验名称: 实验三树——哈夫曼编/解码器
学生姓名:
班级:
班内序号:
学号:
日期: 2014年12月11日

利用二叉树结构实现赫夫曼编/解码器。
基本要求:
初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立赫夫曼树
建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每个字符的编码输出。
编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的字符串输出。
译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译码,并输出译码结果。
打印(Print):以直观的方式打印赫夫曼树(选作)
计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼编码的压缩效果。
测试数据:
I love data Structure, I puter。I will try my best to study data Structure.
提示:
1、用户界面可以设计为“菜单”方式:能够进行交互。
2、根据输入的字符串中每个字符出现的次数统计频度,对没有出现的
字符一律不用编码。
2. 程序分析
存储结构
Huffman树
给定一组具有确定权值的叶子结点,可以构造出不同的二叉树,其中带权路径长度最小的二叉树称为Huffman树,也叫做最优二叉树。
weight lchild rchild parent
2
-1
-1
-1
5
-1
-1
-1
6
-1
-1
-1
7
-1
-1
-1
9
-1
-1
-1
weight lchild rchild parent
2
-1
-1
5
5
-1
-1
5
6
-1
-1
6
7
-1
-1
6
9
-1
-1
7
7
0
1
7
13
2
3
8
16
5
4
8
29
6
7
-1
关键算法分析
(1)计算出现字符的权值
利用ASCII码统计出现字符的次数,再将未出现的字符进行筛选,将出现的字符及頻数存储在数组a[]中。
void Huffman::Init()
{
int nNum[256]= {0}; //记录每一个字符出现的次数
int ch = ();
int i=0;
while((ch!='\r') && (ch!='\n'))
{
nNum[ch]++; //统计字符出现的次数
str[i++] = ch; //记录原始字符串
ch = (); //读取下一个字符
}
str[i]='\0';

n = 0;
for ( i=0;i<256;i++)
{
if (nNum[i]>0) //若nNum[i]==0,字符未出现
{
l[n] = (char)i;
a[n] = nNum[i];
n++;
}
}
}
时间复杂度为O(1);
(2)创建哈夫曼树:
算法过程:
Huffman树采用顺序存储---数组;
数组的前n个结点存储叶子结点,然后是分支结点,最后是根结点;
首先初始化叶子结点元素—循环实现;
以循环结构,实现分支结点的合成,合成规则按照huffman树构成规则进行。
关键点:选择最小和次小结点合成。
void Huffman::CreateHTree()
{
HTree = new HNode [2*n-1]; //根据权重数组a[0..n-1] 初始化Huffman树
for (int j = 0; j < n; j++)
{
HTree[j].weight = a[j];
HTree[j].LChild = HTree[j].RChild = HTree[j].parent = -1;
}
int x,y;
for (int i = n; i < 2*n-1; i++) //开始建Huffman树
{
SelectMin( HTree, i, x, y); //从1~i中选出两个权值最小的结点
HTree[x].parent = HTree[y].parent = i;
HTree[i].weight = HTree[x].weight+ HTree[y].weight;
HTree[i].LChild = x;
HTree[i].RChild = y;
HTree[i].parent = -1;
}
}
时间

最近更新

移步换景PPT课件 16页

宁夏荒漠草原区土壤养分空间变异及评价的开题.. 2页

科室Picc相关知识PPT课件 49页

科学-三年级下-植物的生长变化 12页

私募投资基金合同 52页

2024年幼儿园亲子活动总结集合6篇 13页

初中英语教师业务考试试题及答案 10页

媒体关注对高管薪酬的影响研究的开题报告 2页

威海市A镇农村窝巢老人的养老需求问题及对策研.. 2页

妊娠期高血压疾病患者心脏结构和功能的改变的.. 2页

神经损伤PPT课件PPT课件 80页

学校单招二轮联考(计算机应用专业综合理论试卷.. 4页

2024年幼儿园中班健康教案《洗手歌》含反思 4页

吉林省长春市第十一高中2024年高三物理试题高.. 15页

2024年幼儿园个人工作辞职报告14篇(集合) 20页

腹部常见病变的主要症状和体征2 63页

天津港石化码头公司企业文化建设研究的开题报.. 2页

2024年幼儿园一周总结(精选5篇) 9页

大气颗粒物活性氧物质的浓度水平及来源解析研.. 2页

我的老师小学作文4篇 4页

抑郁症产后分析报告 25页

建筑给排水的方案 2页

部编五年级道法与法治《弘扬优秀家风》教学案.. 7页

管道、箱涵清淤监理细则 15页

大型商场安保实施方案 42页

党小组工作台帐 49页

基督教讲章;悔改的撒该----恩临全家 6页

第九章 地下钱庄与经济犯 32页

读书笔记摘抄大全30篇 26页

两起因开关柜内带电显示器故障引起主变跳闸事.. 4页