1 / 6
文档名称:

哈夫曼编码解码实验报告.docx

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

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

分享

预览

哈夫曼编码解码实验报告.docx

上传人:江湖故人 2021/2/21 文件大小:41 KB

下载得到文件列表

哈夫曼编码解码实验报告.docx

文档介绍

文档介绍:实验要求
掌握二叉树的相关概念
掌握构造哈夫曼树,进行哈夫曼编码。
对编码内容通过哈夫曼树进行解码。
实验内容
通过二叉树构造哈夫曼树, 并用哈夫曼树对读取的 txt文件进行哈夫曼编码。 编码完成
后通过哈夫曼树进行解码。
#include<>
#include<>
#define MAX 100
arent=ht[i].lch=ht[i].rch=0;
}
j=0;
for(i=1;i<=n;i++)
{
/*getchar();
printf(" 输入第%d个叶子节点的值:”,i);
scanf("%c”,&ht[i].data);
printf(" 输入该节点的权值:");
scanf("%d”,&ht[i].weight);
*/
for(;j<127;j++)
if(Coun[j]!=0)
(
ht[i].data=j;
ata);
ht[i].weight=Coun[j];
eight);
break;
}
}
j++;
}
printf("\n");
for(i=1;i<=n;i++)
(
printf("%c”,ht[i].data);
}
printf("\n");
for(i=n+1;i<=2*n-1;i++)
{arent==0)eight<min1)
(
min2=min1;
right=left;
min1=ht[k].weight;
left=k;
else if (ht[k].weight<min2) (
min2=ht[k].weight;
right=k;
}
}
ht[left].parent=i;
ht[right].parent=i;
ht[i].weight=ht[left].weight+ht[right].weight;
ht[i].lch=left;
ht[i].rch =right;
}
}
arent;
while(f!=0)
(
if(ht[f].lch==c)
[]='0';
else
[]='1';
;
c=f;
f=ht[f].parent;
} hcd[i]=cd;
}
printf(- 输出哈夫曼编码:\n");
for(i=1;i<=n;i++)
(
printf("%c:",ht[i].data);
for(k=hcd[i].start+1;k<=n;k++)
p