【数据结构】哈夫曼树

哈夫曼树

 

 

 

 

权值可以看做出现的频率。

 

 

 

利用堆实现。

思路就是:把所给的权值建立一个最小堆,然后创建一个新的结点,再从最小堆删除并获得最小的两个节点分别作为新结点的两个儿子结点,然后给新节点计算新的权重,再把新节点插入最小堆中,之后重新循环比较,循环结束之后,返回指向最小堆的指针。

度为1就是只有一个儿子的结点。

通过计算:总的节点等于n0+n1+n2,n1=0,总结点数等于2n0-1,然后n0=n。

 

哈弗曼编码 

 

也就是这里a的编码1,是s的10前面的1,是s的前缀,这种不行。

其实就是求取使用这种方式编码的最小代价,其实也就是求WPL,最短路径,也就是哈夫曼树。最小两个合并,放入再合并。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值