哈夫曼树又称最优二叉树,哈夫曼树中离根节点越近,节点的权重越大
统计每个数据出现的次数,将每个数据出现的次数组成数组
构造哈夫曼树:
- 选择数据列表中最小的两个值,相加成为一个新的节点,并将两个节点较小的值作为左节点,较大的值作为右节点;
- 将上一步选择的两个节点在数据列表中删除,将想加得到的新节点的值加入到数据列表中
- 重复执行1、2步操作,直至数据列表为空
构造哈夫曼编码
将构造的哈夫曼树所有节点的左分支赋值为0,右分支赋值为1,然后将根节点到每个叶子节点路径上的值连起来作为每个叶子节点对应的数据的哈夫曼编码
详细介绍请参考: