zoukankan      html  css  js  c++  java
  • 构造赫夫曼树(最优二叉树)

    例如,有权值分别为 5、10、15、20、25、40的结点,根据以上算法构造出一个哈夫曼树。

    (1) 取这六个树中最小的两个树5、10连成一个二叉树,其权值为15;此时森林里的树变为15(5、10)、15、20、25、40。

    (2) 取这五个树中最小的两个树(15(5、10)、15),构成一个新的二叉树30((5、10)、15);此时森立里的树变为20、25、30((5、10)、15)、40。

    (3) 继续上述过程,得到一个新的二叉树45(20、25);此时的森林变为30((5、10)、15)、40、45(20、25)。

    (4) 继续得到二叉树70((5、10)、15)、40);则森林里只剩下两棵树:70((5、10)、15)、40)与45(20、25)。

    (5) 最后将这两棵二叉树合并成为一棵二叉树115(((5、10)、15)、40)、(20、25)),完成了哈夫曼树的构造。

    (6) 计算WPL=(5+10)*4+15*3+(20+25)*2+40*2=275。

     

  • 相关阅读:
    go时间和日期转换
    go操作mysql
    Python常见错误处理
    C++ 常见问题
    CF605E Intergalaxy Trips
    均分纸牌详解
    P4447 [AHOI2018初中组]分组
    P4537 [CQOI2007]矩形
    P4823 [TJOI2013]拯救小矮人
    P5132 Cozy Glow之拯救小马国
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7551380.html
Copyright © 2011-2022 走看看