2016 - 2024

感恩一路有你

建立哈夫曼树代码 “哈夫曼树”的建立方法是什么?

浏览量:1309 时间:2021-03-17 09:44:58 作者:admin

“哈夫曼树”的建立方法是什么?

假设n个权重,构造的哈夫曼树有n个叶节点。将N个权值设为K1、K2、kn,则哈夫曼树的构造规则如下:

(1)将K1、K2、kn看作一个有N棵树的林(每棵树只有一个节点);

(2)在林中,选择根节点权值最小的两棵树合并为新树的左、右子树,并且新树的根节点的权重是左、右子树的权重之和;

(3)从林中删除所选的两棵树,并将新树添加到林中;

(4)重复步骤(2)和(3),直到林中只剩下一棵树,并且该树就是得到的哈夫曼树。

哈夫曼静态编码:它对要编码的数据进行两次扫描:第一次对原始数据中每个字符的频率进行计数,用频率值创建一个哈夫曼树,并且必须保存树的信息,即按2-4字节的长度顺序存储字符0-255(2^8=256)的频率值,(存储长度为4字节的频率值,频率值的表示)范围为0--2^32-1,足以表示大文件中字符的频率)以便创建相同的哈夫曼树进行解压缩;第二遍根据第一遍扫描得到的哈夫曼树进行编码,并存储编码的码字。

哈夫曼动态编码:动态哈夫曼编码使用一个动态哈夫曼树,一个字符的编码是基于从原始数据的前t个字符获得的哈夫曼树。编码和解码使用相同的初始哈夫曼树。每个字符经过处理后,编码和解码采用相同的方法修改哈夫曼树,因此不需要保存哈夫曼树信息进行解码。编码和解码字符所需的时间与字符的长度成正比,因此可以实时地进行动态哈夫曼编码。

建立哈夫曼树代码 建立哈夫曼树流程图 数据结构哈夫曼树的创建

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。