做一个哈夫曼编码的译码器,将一个txt文件读入到程序中以后,哈夫曼树也已经建好,得出来的哈夫曼编码存在每个结点的一个String类型的属性Huffmancode中,做到这里该怎么进行利用哈夫曼编码进行文件的压缩的步骤啊?用String 类的c_str()方法返回一个char指针?然后再统计够不够8位,不够8位就补零。可是里面有的字符的哈夫曼编码大于8位,补零后的编码应该等于8位, 这样写入到文件中,不是比原来每个字符8位,所占的空间更大了吗?怎么会起到压缩的效果呢?
高手求帮助啊!
高手求帮助啊!
解决方案
20
汗,既然返回的是char*,那么肯定是byte,8位啦。你要区别字符跟字节。
20
哈夫曼之所以可以压缩全靠它本身就是一个前缀编码,不补0依然能够正确解码,为什么要去补零?