📄 decoding.cpp
字号:
#include"head.h"
void Decoding(Huffmantree HT,int *i)
{//利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
char c;
int a=0,b=*i;
FILE *CodeFile,*TextFile;
CodeFile=fopen("CodeFile","r");
TextFile=fopen("TextFile","w+");
printf("\n");
while(!feof(CodeFile))
{//从CodeFile获取字符,判断其编码是0或者1
c=fgetc(CodeFile);
if(c=='0')
{//如果其编码为0,则找结点的左孩子
a=HT[b].lchild;
if(HT[a].lchild==0)
{//如果该节点没有孩子,输出对应结点代表的字符,并返回到根节点
printf("%c",HT[a].c);
fprintf(TextFile,"%c",HT[a].c);
b=*i;
continue;
}
}
if(c=='1')
{//如果其编码为1,则找结点的右孩子
a=HT[b].rchild;
if(HT[a].lchild==0)
{//如果此节点没有孩子,输出对应结点代表的字符,并返回到根节点
printf("%c",HT[a].c);
fprintf(TextFile,"%c",HT[a].c);
b=*i;
continue;
}
}
b=a;//找其孩子结点
}
fclose(CodeFile);
fclose(TextFile);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -