1 / 7
文档名称:

哈弗曼编码.doc

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

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

分享

预览

哈弗曼编码.doc

上传人:iris028 2021/1/9 文件大小:28 KB

下载得到文件列表

哈弗曼编码.doc

相关文档

文档介绍

文档介绍:#include <>
#include <>
#include <>
#include <>
#define MAXLEN 100
typedef struct
{
char ch;
int weight;
int lchild;
int rchild;
int parent;
}HTNode;
typedef HTNode HFMT[MAXLEN];
typedef char **HfCode;
int n;
void InitHFMT(HFMT T)
{
int i;
printf("\n\t\tÇëÊäÈë¹²ÓжàÉÙ¸öȨֵ£¨Ð¡ÓÚ100£©£º");
scanf("%d",&n);
getchar();
for (i=0;i<2*n-1;i++)
{
T[i].weight=0;
T[i].lchild=-1;
T[i].rchild=-1;
T[i].parent=-1;
}
}
void InputWeight(HFMT T,char *weightFile)
{
int w;
int i;
int n;
char ch;
FILE *fp;
if ((fp=fopen(weightFile,"r"))!=NULL)
{
fscanf(fp,"%d\n",&n);
for (i=0;i<n;i++)
{
ch=fgetc(fp);
fscanf(fp,"%d\n",&w);
T[i].ch=ch;
T[i].weight=w;
}
}
fclose(fp);
}
void SelectMin(HFMT T,int i,int *p1,int *p2)
{
long min1=999999;
long min2=999999;
int j;
for (j=0;j<=i;j++)
{
if (T[j].parent==-1)
{
if (min1>T[j].weight)
{
min1=T[j].weight;
*p1=j;
}
}
}
for (j=0;j<=i;j++)
{
if (T[j].parent==-1)
{
if (min2=T[j].weight&&j!=(*p1))
{
min2=T[j].weight;
*p2=j;
}
}
}
}
void CreatHFMT(HFMT T)
{
int i,p1,p2;
InitHFMT(T);
InputWeight(T,"");
for (i=n;i<2*n-1;i++)
{
SelectMin(T,i-1,&p1,&p2);
T[p1].parent=T[p2].parent=i;
//T[i].lchild=T[p1].weight;
//T[i].rchild=T[p2

最近更新

土木工程专业毕业设计开题报告 32页

科学小论文作文(通用8篇) 7页

生产实习心得体会(精选6篇) 12页

爱之花作文(通用7篇) 6页

求职个人简历自我评价(精选3篇) 3页

有关初一作文300字集锦7篇 5页

日落的作文(通用6篇) 8页

教师竞聘演讲稿(通用7篇) 12页

护士节活动主持词(通用2篇) 10页

我的周末生活小升初英语作文(通用3篇) 3页

感恩父亲节主题广播稿(精选2篇) 5页

建筑施工年度安全工作总结(精选2篇) 5页

幼儿园班主任工作总结(精选6篇) 12页

幼儿园中班下学期班务简洁工作总结(通用4篇).. 14页

小班国庆节活动策划方案(精选4篇) 7页

小学写人作文900字合集8篇 11页

学生代表中考誓师大会发言稿(通用13篇) 19页

天空的作文500字(通用3篇) 3页

员工辞职报告(通用7篇) 10页

人教版八年级初二地理上册-第三节-工业-第课时.. 17页

初三中考励志演讲稿(精选2篇) 4页

关爱留守儿童工作简报(精选6篇) 9页

六年级拔河比赛作文(精选6篇) 7页

人教版初中化学九年级上册-氧气的性质()-名师.. 34页

优秀写人作文(精选4篇) 6页

书包里的争吵童话故事(精选3篇) 4页

个人年终总结(精选6篇) 13页

【精选】四年级期中考试作文四篇(通用4篇) 3页

【推荐】幼儿园小班安全教案范文锦集7篇 14页

《瓦尔登湖》读后感【荐】(精选15篇) 10页