int main(int argc, char **argv)
{
if(strcmp(argv[1],"-c")==0)
{
//获取文件的词频
calWeight(argv[2]);
//申请Huffman树的内存,已经获得叶子节点数,根据节点总数与叶子节点数的关系分配内存
Node *huffmanTree = (Node *)malloc((2*count-1+1)*sizeof(Node));
//创建Huffman树
createHufmanTree(huffmanTree);
//为Huffman编码表申请一个二维的字符数组指针
HC = (HCode *)malloc((count+1)*sizeof(HCode));
//向指针赋值,getHuffmanCode()函数返回编码表
HC = getHuffmanCode(huffmanTree,HC,code);
//根据编码表HC和编码对应的data表code压缩文件
compress_file(argv[2],argv[3]);
//将编码存入到默认的编码表当中(C:\\dic.txt)
freToFile(code,HC);
}
else if(strcmp(argv[1],"-u")==0)
{
//为编码表分配内存,由于不知道叶子节点数,分配257
HC = (HCode *)malloc(257*sizeof(HCode));
//从词频表当中获取编码
HC = freFromFile(code,HC);
//根据编码表和data表解压文件
uncompress_file(argv[2],argv[3]);
}
return 0;
}
一份基于huffman编码的文件解压缩程序(C语言,源码)下载
------------------------------------------分割线------------------------------------------
具体下载目录在 /2014年资料/8月/18日/基于Huffman编码的C语言解压缩文件程序
------------------------------------------分割线------------------------------------------