)霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB


霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB
计算
(1) 该字符串的霍夫曼码
(2) 该字符串的熵
(3) 该字符串的平均码长
(4) 编码前后的压缩比
z87110067 1年前 已收到1个回答 举报

xy916 花朵

共回答了20个问题采纳率:90% 举报

#include
#include
#include
#include
#include
typedef struct {
unsigned int weight;
unsigned int parent,lchild,rchild;
} HTNode,*HuffmanTree;
typedef char **HuffmanCode;
typedef struct {
unsigned int s1;
unsigned int s2;
} MinCode;
void Error(char *message);
HuffmanCode HuffmanCoding(HuffmanTree HT,HuffmanCode HC,unsigned int *w,unsigned int n);
MinCode Select(HuffmanTree HT,unsigned int n);
void Error(char *message)
{
clrscr();
fprintf(stderr,"Error:%sn",message);
exit(1);
}
HuffmanCode HuffmanCoding(HuffmanTree HT,HuffmanCode HC,unsigned int *w,unsigned int n)
{
unsigned int i,s1=0,s2=0;
HuffmanTree p;
char *cd;
unsigned int f,c,start,m;
MinCode min;
if(nparent=0;
p->lchild=0;
p->rchild=0;
}
for(;iweight=0;
p->parent=0;
p->lchild=0;
p->rchild=0;
}
for(i=n+1;i

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.012 s. - webmaster@yulucn.com