这一节我们主要介绍了分析deflate算法所要用到的一些基本知识,这些基本知识非常重要,是分析deflate算法必不可少的,后面的章节已经假定各位看官掌握了这些基本知识,不再介绍这些知识的具体内容。本节内容预先提到了几个deflate算法中的哈夫曼编码会使用到的性质,这些性质非常重要,在这个地方有一个基本认识,后面分析源码的时候才能事半功倍(经验之谈)。关于性质,我做个总结,
a) 2n-1与2n+1的差别,为什么源码中使用2n+1?带着这个问题看第六章源码分析;
b) 原始的哈夫曼编码与deflate算法中使用的哈夫曼编码不完全相同,后者增加了一些性质。那么,后者如何按照新增的性质构建自己的哈夫曼树?如何解决图x中的那种情况?带着这个问题看第六章源码分析;
c) 树的深度就是码字长度,树深要从根算起;
d) 注意区分满二叉树与完全二叉树。