给定权值怎么构造哈夫曼树 如何建立哈夫曼树?
如何建立哈夫曼树?
假设n个权重,构造的哈夫曼树有n个叶节点。将N个权值设为K1,K2,则哈夫曼树的构造规则为:(1)将K1,k2kn看作一个有N棵树的森林(每棵树只有一个节点);(2)在森林中,选择两棵根节点权值最小的树并合并为一棵新树的左、右子树,新树的根节点的权重是左右子树的权重之和;(3)从林中删除选中的两棵树,并将新树添加到林中;(4)重复步骤(2)和(3),直到林中只剩下一棵树,该树就是得到的哈夫曼树。哈夫曼静态编码:对要编码的数据进行两次扫描:第一次对原始数据中每个字符的频率进行计数,用频率值创建一棵哈夫曼树,并且必须保存树的信息,即按2-4字节的长度顺序存储字符0-255(2^8=256)的频率值,(存储长度为4字节的频率值,频率值的表示)为了创建用于解压缩的相同哈夫曼树,第二遍对从第一遍扫描获得的哈夫曼树进行编码并存储编码的码字。哈夫曼动态编码:动态哈夫曼编码使用一个动态哈夫曼树对一个字符进行编码是基于哈夫曼树从原始数据的前t个字符中获得。编码和解码使用相同的初始哈夫曼树。每个字符经过处理后,编码和解码采用相同的方法修改哈夫曼树,因此不需要保存哈夫曼树信息进行解码。编码和解码字符所需的时间与字符的长度成正比,因此可以实时地进行动态哈夫曼编码。
给定权值怎么构造哈夫曼树 哈夫曼树唯一吗 为什么 如何求哈夫曼树带权路径长度
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。