写了一个文件压缩器,用哈夫曼编码,走了很多弯路,原因在于未能真正理解哈夫曼编的实质。
1. 原来哈夫曼编码是可以连续在一起的。
例如,'c'的编码是 01, b 的编码是 00, 那么字符串 'bc'的编码就是‘0001’, 注意,中间是不用空格或其他字符作为标识的。
一开始我以为要,但未想清楚,直到看了书才知道。
2. 出现这个的根本原因在于,过于匆忙地写代码,未能事先理解算法的本质。
劳力是有限的,所以不能一味死干。
聪明地干,先思考,再干活。
3. 关于二制进,要想好,到底是先移位还是先累加。
4. c++ 中, int 类型是 4 个字节, char 是 一个字节
5. 程序的算法错误多数出现在循环。