1、根据输入的字符串,整理得到其权值表 队列,权值表元素和哈弗曼树节点可以定义为一个类,方便建树。
2、建立哈弗曼树,用递归遍历树,设左1右0,得到码表队列。
3、根据码表把字符串转换成由01组成的串。
4、把01串按照二进制转换成十进制的方法,把每16个01串转换成一个整数。最后不足16个的补零至16个转换成整数。统统放进整数数组里保存,数组最后一位保存补零的个数。5、利用IO流,把整数数组写入新建的文件里。然后还需要以一定形式保存码表,以便关闭程序后再次重启时依然能读取。
6、读取文件里的整数数据,转换成二进制的01串储存在char数组里,如果每个整数转成的01串不足16个,要在串的前面补零,补足16位为止。倒数第二个整数转换成01串并且补零后,根据最后一个整数,char数组中后面的该整数位数的元素。
7、根据读出的码表和读取出来的01串,还原字符串。