)霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1) 该字符串的霍夫曼码(2) 该字符串的熵(3) 该字符串的平均码长(4) 编码前后的压缩比
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/25 17:01:02
![)霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1) 该字符串的霍夫曼码(2) 该字符串的熵(3) 该字符串的平均码长(4) 编码前后的压缩比](/uploads/image/z/9677411-35-1.jpg?t=%EF%BC%89%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%BC%96%E7%A0%81%E7%8E%B0%E6%9C%89%E4%B8%80%E4%B8%AA%E7%94%B15%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%AC%A6%E5%8F%B7%E7%BB%84%E6%88%90%E7%9A%8430%E4%B8%AA%E7%AC%A6%E5%8F%B7%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9ABABACACADADABBCBABEBEDDABEEEBB%E8%AE%A1%E7%AE%97%281%29+%E8%AF%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E9%9C%8D%E5%A4%AB%E6%9B%BC%E7%A0%81%282%29+%E8%AF%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E7%86%B5%283%29+%E8%AF%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%B9%B3%E5%9D%87%E7%A0%81%E9%95%BF%284%29+%E7%BC%96%E7%A0%81%E5%89%8D%E5%90%8E%E7%9A%84%E5%8E%8B%E7%BC%A9%E6%AF%94)
)霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1) 该字符串的霍夫曼码(2) 该字符串的熵(3) 该字符串的平均码长(4) 编码前后的压缩比
)
霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB
计算
(1) 该字符串的霍夫曼码
(2) 该字符串的熵
(3) 该字符串的平均码长
(4) 编码前后的压缩比
)霍夫曼编码现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1) 该字符串的霍夫曼码(2) 该字符串的熵(3) 该字符串的平均码长(4) 编码前后的压缩比
#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:%s\n",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