1 / 6
文档名称:

哈弗曼编码实现无损压缩实验报告.doc

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

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

分享

预览

哈弗曼编码实现无损压缩实验报告.doc

上传人:燕燕盛会 2022/5/4 文件大小:65 KB

下载得到文件列表

哈弗曼编码实现无损压缩实验报告.doc

相关文档

文档介绍

文档介绍:精品范文模板 可修改删除
免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
撰写人:___________日 期:___________
r(int j=0;a[i]!=m;j++)
m++;
s[m]++;
i++;
}
printf(" \n");
/*for(i=0;i<256;i++)
printf("%3d",s[i]);*/
while(f!=255)
{
if(s[f]!=0)
qq++;
f++;
}
printf("\nqq=%d\n",qq);
}
//构造Huffman树*****************************3
typedef struct
精品范文模板 可修改删除

免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
{
int weight;
int parent;
int lchild;
int rchild;
char num;
}HNodeType;
HNodeType HuffNode[MAXNODE];//MAXNODE代表所有结点的个数
int n;//叶子结点个数
void HuffmanTree()
{
int i,j,m1,m2,x1,x2;
n=qq;//叶子结点的个数
for(i=0;i<MAXNODE;i++)
{
HuffNode[i].weight=0;
HuffNode[i].parent=-1;
HuffNode[i].lchild=-1;
HuffNode[i].rchild=-1;
HuffNode[i].num=-1;
}
// cout<<"请分别输入各个叶子结点的权值:"<<endl;
j=0;
for(i=0;i<256;i++)
{
if(s[i]!=0)
{
HuffNode[j].weight=s[i];
HuffNode[j].num=i;
j++;
}
}
for(i=0;i<n-1;i++)//构造哈弗曼树
{
m1=m2=MAXVALUE;
x1=x2=0;
for(j=0;j<n+i;j++)//选取最小和次小的两个权值,其中n+i中的i代表已经多加了i个非叶子结点
{
if(HuffNode[j].parent==-1&&HuffNode[j].weight<m1)
{
m2=m1;
x2=x1;
精品范文模板 可修改删除

免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
m1=HuffNode[j].weight;
x1=j;
}
else if(HuffNode[j].parent==-1&&HuffNode[j].w