下载此文档

北邮数据结构实验报告 北邮数据结构实验3哈夫曼编码.doc


文档分类:IT计算机 | 页数:约39页 举报非法文档有奖
1/39
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/39 下载此文档
文档列表 文档介绍
北邮数据结构实验报告北邮数据结构实验3哈夫曼编码

导读:就爱阅读网友为您分享以下“北邮数据结构实验3哈夫曼编码”的资讯,希望对您有所帮助,的支持!
数据结构实验报告
实验名称: 实验3——哈夫曼编码
学生姓名:
班级:
班内序号:
学号:
日期: 2013年11月24日

利用二叉树结构实现赫夫曼编/解码器。
基本要求:
1、初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个
字符的频度,并建立赫夫曼树
2、建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每
个字符的编码输出。
3、编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的
字符串输出。
4、译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译
码,并输出译码结果。
5、打印(Print):以直观的方式打印赫夫曼树(选作)
6、计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼
编码的压缩效果。

2. 程序分析
:
struct HNode
{
char c;//存字符内容
int weight;
int lchild, rchild, parent;
};
struct HCode
{
char data;
char code[100];
}; //字符及其编码结构
class Huffman
{
private:
HNode* huffTree; //Huffman树
HCode* HCodeTable; //Huffman编码表
public:
Huffman(void);
void CreateHTree(int a[], int n); //创建huffman树
void CreateCodeTable(char b[], int n); //创建编码表
void Encode(char *s, string *d); //编码
void Decode(char *s, char *d); //解码
void differ(char *,int n);
char str2[100];//数组中不同的字符组成的串
int dif;//str2[]的大小

~Huffman(void);
};
结点结构为如下所示:

三叉树的节点结构:
struct HNode//哈夫曼树结点的结构体
{ int weight;//结点权值
int parent;//双亲指针
int lchild;//左孩子指针
int rchild;//右孩子指针
char data;//字符
};
示意图为:

编码表节点结构:
struct HCode//编码表结构体
{
char data;//字符
char code[100];//编码内容
};
示意图为:
基本结构体记录字符和出现次数:
struct node
{
int num;
char data;
};
示意图为:

(1).初始化:
伪代码:
1. 输入需要编译的文本内容
2. 将输入的内容保存到数组 str1中
3. 统计出现的字符数目,并且保存到变量count中
4. 统计出现的不同的字符,存到str2中,将str2的大小存到dif中
时间复杂度O(n!)
(2).创建哈夫曼树
算法伪代码:
1. 创建一个长度为2*n-1的三叉链表
2. 将存储字符及其权值的链表中的字符逐个写入三叉链表的前n个结点的data域,并将对
应结点的孩子域和双亲域赋为空
3. 从三叉链表的第n个结点开始,
从存储字符及其权值的链表中取出两个权值最小的结点x,y,记录其


篇二:
银行科级干部竞聘报告
首先感谢各位领导、各位评委、各位同志给予我展示自我的舞台和施展才华的机会!科级干部实行公平、公正、公开地竞争上岗,这是深化人事制度改革的重大举措,也是我行加强干部队伍建设的有益尝试。我将珍惜这次提高自己、锻炼自己的机会,勇敢地走上台来,接受大家的评判。
我今天演讲的题目是不满足是上进的车轮,这是鲁迅先生的一句名言。一个企业如果甘于现状,不思进取,那么等待它的必然是被竞争所淘汰;对于人也一样,如果但求无过,不求有功,整天浑浑噩噩,还谈什么报效国家,献身中行。
众所周知,从现在算起,我国加入wto后,对金融业的保

北邮数据结构实验报告 北邮数据结构实验3哈夫曼编码 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数39
  • 收藏数0 收藏
  • 顶次数0
  • 上传人raojun00001
  • 文件大小71 KB
  • 时间2017-12-30
最近更新