日撸代码300行学习笔记 Day 29
目录
1.前言
2.Huffman 编码 (建树)
3.字母表的映射构造
Step 1-2:初始化等数据准备工作
Step 3:建立各种数组
3.构建哈夫曼树
Step 1-2:申请空间以及初始化节点
Step 3:构建树
4.总结
1.前言
在之前的学习中,主要实现了哈夫曼树节点的构造以及数据文本的写入,今日继续对哈夫曼树的构造进行学习。
2.Huffman 编码 (建树)
在哈夫曼树的构造原理中,最核心的观点就是:所有叶子结点的带权路径长度之和最小。
然后根据这一原理,我们要将算法详细讲解为这种:
我们应该尽可能地让权值大的叶子结点靠近根结点,让权值小的叶子结点远离根结点
今日的主要代码部分为:字母表的映射构造,哈夫曼树的构造。
3.字母表的映射构造
Step 1-2:初始化等数据准备工作
public void constructAlphabet() {
// Initialize.
Arrays.fill(charMapping, -1);
// The count
共有 0 条评论