给你一个建树的代码
Select(HuffNode HT[],int j)
{
for(i=0;i
{s1=i;break;}
for(;i
HT[s1].parent=1;
for(i=0;i
{s2=i;break;}
for(;i
return(s1);return(s2);}
void HuffmanTree(HuffNode HT[]){
m=2*n-1;int temp;
for(i=0;i
for(;i
for(i=n;i
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s2;
HT[i].rchild=s1;
HT[i].weight=HT[s1].weight+HT[s2].weight;
}
temp=HT[i-1].lchild;HT[i-1].lchild=HT[i-1].rchild;HT[i-1].rchild=temp;
FILE *fp;
if((fp=fopen("E:\\HuffmanTree.txt","a+"))==NULL)
{printf("打不开此文件\n"); exit(0);}
printf("权值 父母 左孩子 右孩子\n");
fprintf(fp,"权值 父母 左孩子 右孩子\n");
for(i=0;i
printf("%3d%6d%7d%8d\n",HT[i].weight,HT[i].parent,HT[i].lchild,HT[i].rchild);
}
fclose(fp);
}
不完全,因为我做的还有译码和编码 当然还要你自己修改