读入压缩文件长度和源文件长度。读入前缀编码。
对文件中各字符解码,写入解压文件。
判断解压文件是否完好(对比压缩前文件长度),关闭指针,完成解压。
源码部分:
"#$%&'(
"#$%&)*'(
"#$%&#+'(
"#$%'(
&)&'$
*$')+, --记录字符在数组中的位置
#*&, --字符出现频率(权值)
#*.)$&#')', --定义哈夫曼树指针变量
')+&/!0, --定义存储哈夫曼编码的数组
'$$)/!0&.,
1.)$23
')4#$$/!!0&.5#$/!!0+6/!0,
*$'),
#*76, --作计数或暂时存储数据用
#*.&8$*&'#$*&'#$*&', --记录最小结点、文件长度
+#$1, --计算压缩比用
9:;<6.<6., --分别为输入、输出文件指针
.)52=>& 请您输入需要压缩的文件(需要路径):=3,
*$&24#$$3,
6.6.$24#$$=)+=3,
626.?@::3
.)52=>>& 文件打开失败A>=3,
B&$2=.$=3,
)$&),
.)52=>& 请您输入压缩后的文件名(如无路径则默认为桌面文件):=3,
*$&2&.5#$3,
6.6.$2&.5#$=+=3,
626.?@::3
.)52=>>& 压缩文件失败A>=3,
B&$2=.$=3,
)$&),
8$*&',
'#$2A6$626.33
6)$2C6.3,
'$$)/0&, --字符重复出现频率
8$*&', --字符出现原文件长度
评论2
最新资源