哈夫曼树、哈夫曼编码——哈哈,至少你要了解一下原理吧

本文介绍哈夫曼树的基本概念,详细解释了如何通过一组权值构建哈夫曼树,并介绍了哈夫曼编码的生成过程。哈夫曼树是一种特殊的二叉树,能够实现最优的数据压缩效果。

哈夫曼树,即带权路径最小的二叉树,又称为最优二叉树。

哈夫曼算法描述如下:
1)用给定的一组权值{W1,W2,……,Wn},生成一个有n棵树组成的森林F={T1,T2,……Tn},其中每棵二叉树Ti只有一个节点,即权值为Wi的根节点(也是叶子)
2)从F中选择两棵节点权值最小的树,作为新树根的左、右子树(左小右大),新树根的权值是左右子树根节点权值之和
3)从F中删除这两棵树,另将新二叉树加入F中
4)重复2)和3),直到F中只包含一棵树为止

规定哈夫曼树的左分支代表0,右分支代表1,则从根节点到到叶子节点所经过的路径组成的0和1的序列,便成为该节点对应字符的编码,即哈夫曼编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值