r(i=1;i<=n;i++)//对每个节点初始化Р { Р Hfm.HT[i].parent=0;Р Hfm.HT[i].lchild=0;Р Hfm.HT[i].rchild=0;Р }Р for(;i<=2*n-1;++i)Р {Р Hfm.HT[i].weight=0;Р Hfm.HT[i].parent=0;Р Hfm.HT[i].lchild=0;Р Hfm.HT[i].rchild=0;Р }Р Hfm.length=n;Р }Р }Р fclose(fp);Р Hfm=HuffmanCoding(Hfm);Р return Hfm;Р Р}Р编码:Encoding(Huffman Hfm)Р分析:利用已建好的Huffman树(如不在内存,则从文件hfmTreР中读入),对文件中的正文进行编码,然后将结果存入文件CodeFile中。流程图如图3所示。Р图3:Encoding(Huffman Hfm)流程图Р该模块的具体代码如下所示。Рvoid Encoding(Huffman Hfm)//利用已建好的Huffman树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。Р{Р int i=0,j=0,n;Р char ch[Max];Р FILE *fp,*fw;Р n=Hfm.length;Р if((fw=fopen("ToBeTran","r+"))==NULL)//尝试打开ToBeTranР {Р printf("请输入字符串:\n ");Р scanf("%s",ch);Р printf("\n");Р fp=fopen("CodeFile","wt+");Р }Р elseР {Р fscanf(fw,"%s",ch);Р fclose(fw);Р }Р while(ch[j])