下载此文档

构造哈夫曼树及哈夫曼编码.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
《数据结构》实验报告
实验名称: 构造哈夫曼树及哈夫曼编码
专 业: 计算机科学与技术专业
班 级: 计算机科学与技术
姓 名:
《数据结构》实验报告
实验名称: 构造哈夫曼树及哈夫曼编码
专 业: 计算机科学与技术专业
班 级: 计算机科学与技术
姓 名:
学 号:
完成日期: 2012/11/22
2012年 11月22 日
问题描述
构造一个哈夫曼树,并根据所构造的哈夫曼树求其哈夫曼树的编码;
需求分析
哈夫曼树有叫做最优二叉树,它是指对于一组带有确定的权值的叶节点,构造具有最小的带权路径程度的二叉树。
在数据通信中,经常需要将传送的文字转换成由二进制字符0,1组成的二进制串,称之为编码。如果在所有的编码中每个字符的编码都一样的长短则有的字符在应用中出现的次数多有的字符在应用中出现的次数少,这样的话有的电文的编码会很长,所以就想用不同长度的编码区代表字符,及在电文中出现的概率大的用短的字符表示,而出现的概率小的用长的字符表示,则得到的电文可能就比较短。
基于以上的需求与要求,就出现了哈夫曼编码。
概要设计
先建立哈夫曼树的结构,即哈夫曼树的构造算法;
再建立哈夫曼树编码的结构,即哈夫曼树编码的算法;
再带入数据进行验证。
详细设计
1.、哈夫曼树构造算法的编码:
#include<iostream>
using namespace std;
#define MAXVALUE 100
#define MAXLEAF 30
#define MAXNODE MAXLEAF*2-1
#define MAXBIT 10

typedef struct
{
int weifht; //权值
int parent; //双亲节点
int lchild; //左孩子
int rchild; // 右孩子
}HNodeType;
typedef struct
{
int bit[MAXBIT];
int start;
}HCodeType;
void HuffmanTree(HNodeType HuffNode[],int n)
{
int i,j,m1,m2,x1,x2;

for(i = 0;i < 2*n-1;i++) //对数组进行初始化
{
HuffNode[i].weifht = 0;
HuffNode[i].parent = -1;
HuffNode[i].lchild = -1;
HuffNode[i].rchild = -1;
}
for(i = 0;i < n;i++) //输入各个节点的权值
{
cout<<"输入第"<<i<<"个叶节点的权值:"<<endl;

构造哈夫曼树及哈夫曼编码 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人慢慢老师
  • 文件大小38 KB
  • 时间2022-02-13