哈夫曼树

1、概念

  • 哈夫曼树是带权路径长度最

  • 短的树,也叫最优二叉树,不是满二叉树,是正则二叉树(也叫正规二叉树),其中只有度为0和度为2 的结点。
        • 哈夫曼树只有度为2和叶子结点

    • 2、哈夫曼树的构造
      • 第一步:排序 2  4  5  9
        第二步:挑出2个最小的  2  4  为叶子构造出
          6
        2  4
        第三步:判断 6 不大于 5或9(剩余叶子中最小的2个)=》 同方向生长,得出:
             11
          6      5
        2  4
        第四步:继续生长
                 20       
             11       9
           6    5
          2 4
        权值为  2*3+4*3+5*2+9*1=37
        也可以20+11+6=37
        
        例题:6、13、18、30、7、16
        排序  6  7  13   16   18  30
           13
         6   7
                26          26大于16或18  =》分支生长   
           13       13
          6   7  
               26                             34
           13       13                  16    18
          6   7
        此时最小的2个数为   26   30   得出
                         56                                34
               26                30                    16    18
          13       13
        6    7
        最后得出                           90
                                  56                            34
                          26               30              16   18
                    13        13
                 6      7                                    权值  219
        90+56+26+13+34   or  6*4+7*4+13*3+30*2+16*2+18*2

      • 3、带权路径长度
      • 所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。

        1.树的路径长度      

        树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。

        2.树的带权路径长度(Weighted Path Length of Tree,简记为WPL)  

        结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。  

        结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。  

        树的带权路径长度(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和,通常记为:                      其中:           n表示叶子结点的数目     wi和li分别表示叶结点ki的权值和根到结点ki之间的路径长度。     树的带权路径长度亦称为树的代价。3.最优二叉树或哈夫曼树      在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。   【例】给定4个叶子结点a,b,c和d,分别带权7,5,2和4。构造如下图所示的三棵二叉树(还有许多棵),它们的带权路径长度分别为:         (a)WPL=7*2+5*2+2*2+4*2=36         (b)WPL=7*3+5*3+2*1+4*2=46         (c)WPL=7*1+5*2+2*3+4*3=35  其中(c)树的WPL最小,可以验证,它就是哈夫曼树。        注意:     ① 叶子上的权值均相同时,完全二叉树一定是最优二叉树,否则完全二叉树不一定是最优二叉树。     ② 最优二叉树中,权越大的叶子离根越近。     ③ 最优二叉树的形态不唯一,WPL最小


      • 4、哈夫曼的码字

      • 只有叶子结点才能编码,因而有多少个叶子结点就有多少个码字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值