二叉树哈夫曼树

哈夫曼树
相关基础概念

路径长度:从一个节点到另一个节点之间的路径条数目

从根节点到第L层节点路径长度是L-1

树的路径长度: 从根节点出发到每个节点的路径长度之和

节点的权:如果给树中每个节点赋予一个某种含义的数值,该数值称为该节点的权值

节点的带权路径长度:从根节点到该节点的路径长度与该节点的权值的乘积

树的带权路径长度:所有叶子节点的带权路径长度之和 WPL

成绩: <60     60~69    70~79      80~89     90~100
等级    E       D         C         B         A
比例   5%       30%      40%        15%       10%     
    
 普通带权二叉树的WPL:
    WPL=1*5+2*30+3*40+4*15+4*10 = 285
 哈夫曼树的WPL:
    WPL=40+2*30+3*15+4*5+4*10 = 205
    
 WPL是评价一棵带权二叉树优劣重要标准
哈夫曼树:一定是一棵WPL最小的带权二叉树
构建哈夫曼树:

1、把n个带权节点先存储一个集合F中,每个节点的左右子树都为空

2、从F中选取根节点的权值最小的两个节点作为左右子树构成一棵新的二叉树,左小右大,这颗二叉树的根节点的权值等于两个子树权值之和

3、从F中删除刚刚取出来的两个节点,并把新形成的二叉树根节点放入F中

4、重复步骤2、3,直到F中只剩下一棵树,就是哈夫曼树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值