英文字母哈夫曼编码c语言,c语言实现哈夫曼编码

#include

#include

#define MAX 100

#define MAXSYMBS 30

#define MAXNODE 59

#define DEEP 10

typedef struct{

float weight;

int flag;

int parent;

int lchilde;

int rchilde;

}huffnode;

/*哈夫曼树结构定义*/

typedef struct{

int bits[MAXSYMBS];

int start;

}huffcode;

int main(void)

{

huffnode huff_node[MAXNODE];

huffcode huff_code[MAXSYMBS],cd;

int i,j,x1,x2,n,c,p;

float m1,m2,temp,hx=0,KL=0;

clrscr();

printf("Please input the leaf num of tree:/n");

scanf("%d",&n);

for(i=0;i<=2*n-1;i++)

{

huff_node[i].weight=0;

huff_node[i].parent=0;

huff_node[i].flag=0;

huff_node[i].lchilde=-1;

huff_node[i].rchilde=-1;

}

printf("Please input the weight of every leaf/n");

for(i=0;i

{  printf("input %dth weight>>",i+1);

scanf("%f",&temp);

huff_node[i].weight=temp;

hx=hx-temp*3.332*log10(temp);

}

/*构建哈夫曼树*/

for(i=0;i

{

m1=m2=MAX;

x1=x2=0;

for(j=0;j

{

if(huff_node[j].weight

{

m2=m1;

x2=x1;

m1=huff_node[j].weight;

x1=j;

}

else

if(huff_node[j].weight


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部