哈夫曼树和哈弗曼编码

 这里第一步,取出最小权值的c跟d 组成新树,6(这里6是权值,由组成的结点权值相加) 2 4 ,然后再重复造新树 把b拉进来 组成 11 5 6 2 4,一直到权值最高的结点也被拉进来组成新树,最后出来的就是哈夫曼树。

 结点两两相造成新树,n个叶子结点,会结合n-1次,也就生成n-1个节点,再加上本身n个节点。那对应的哈夫曼树就有2n-1个节点 。其中,n-1个结点度为2,n个结点度为0.

 构造新树是比较当前森林里面最小的权值,拎出来两个,造新树。而不是按顺序就近造。切记切记。

 

 

 哈夫曼编码,这个题目中把出现频率看成是权值,通过构建哈夫曼树来确定每个独立结点各自的编码。因为要求是出现频率越大,编码越短,这就符合哈夫曼树的性质。左子树取0,右子树取1。从根节点出发,路径上的结点数字叠加。

 OKAY。第一个问题解释,因为我们要进行编码的数据,本身就看成是独立的结点,森林中独立的树,各自之间没有联系,所以各自的编码不会是其他结点的前缀。第二个问题解释,这个很好理解了,权值越大的越靠近根节点,路径也就最短。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值