数据结构之哈夫曼

本文介绍了哈夫曼树的特点,强调了其基于最小堆构造的过程,指出哈夫曼树没有度为1的节点,并通过数学推导证明了哈夫曼树中叶节点个数与度为2的非叶节点个数的关系。此外,还提及了哈夫曼编码的相关内容。
摘要由CSDN通过智能技术生成

哈夫曼树的特点: 

父节点是两个子节点的和。 利用最小堆来做,每次从最小堆中取出两个分别放到新树的左节点和右节点,然后父节点的值等于左右节点的权值和,再将此父节点插入到最小堆中。 因此哈夫曼树没有度(子节点)为1的节点,所以由上图可知,

由于任何非空二叉树,若N0表示叶节点个数,n2是度为2的非叶节点个数,那么两者满足关系 n0 = n2+1,解析如下:

  n0+n1+n2-1 = 0*n0 + 1*n1+2*n2               ≈      n0+n2-1 = 2*n2       ≈         n0-1 = n2           ≈               n0 = n2+1

(各个节点的边,连接每个节点的边只有一条,根节点没有,所以-1) = (节点延伸出来的边数 n0 0个边 ,n1 1个边,n2 2个边)

哈夫曼树总节点为:n0+n2  =  2n2-1(没有n1 而n0 = n2+1)

 

哈夫曼编码:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值