1 / 3
文档名称:

哈夫曼编译码器.doc

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

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

分享

预览

哈夫曼编译码器.doc

上传人:amikiri 2021/12/2 文件大小:13 KB

下载得到文件列表

哈夫曼编译码器.doc

相关文档

文档介绍

文档介绍:哈夫曼编译码器
?þ?òÂü?à\ÒëÂëÆ?
# define max 50
> struct a
> {
> int weight;
> int parent,lchild,rchild; > };
> struct b
> {
> char cd[max];
> int start;
> };
> main()
> {
> struct a ht[2*max]; > struct b hcd[max],d; > int i,j,k,n,c,s1,s2,m1,m2,f; > printf("shu ru n:
");
> scanf("%d",&n);
> for(i=1;i<=n;i++)
> {
> printf("shu ru quan zhi :"); > scanf("%d",&ht[i].weight); > ht[i].parent=0;
> }
> for(;i<=2*n-1;i++) > ht[i].parent=ht[i].lchild=ht[i].rchild=0;
> for(i=n+1;i<=2*n-1;i++) > {
> m1=m2=30000;
> s1=s2=0;
> for(k=1;k<=i-1;k++) > {
> if(ht[k].parent==0 && ht[k].weight<m1)
> {
> m2=m1;
> s2=s1;
> m1=ht[k].weight;
> s1=k;
> }
> else if(ht[k].parent==0 && ht[k].weight<m2)
> {
> m2=ht[k].weight;
> s2=k;
> }
> }
> ht[s1].parent=ht[s2].parent=i; > ht[i].lchild=s1;
> ht[i].rchild=s2;
> ht[i].weight=ht[s1].weight+ht[s2].weight;
> }
> for(i=1;i<=n