zoukankan      html  css  js  c++  java
  • 哈夫曼树的构造

    摘抄自:哈夫曼树以及哈夫曼编码的构造步骤

    因为做题的时候在这里卡住了,故学习一下,通俗方法:一直找最小的两个值

    注意:哈夫曼树并不唯一,但带权路径长度一定是相同的。

    (1)8个结点的权值大小如下:

    img
    (2)从19,21,2,3,6,7,10,32中选择两个权小结点。选中2,3。同时算出这两个结点的和5。

    img
    (3)从19,21,6,7,10,32,5中选出两个权小结点。选中5,6。同时计算出它们的和11。

    img
    (4)从19,21,7,10,32,11中选出两个权小结点。选中7,10。同时计算出它们的和17。
    (BTW:这时选出的两个数字都不是已经构造好的二叉树里面的结点,所以要另外开一棵二叉树;或者说,如果两个数的和正好是下一步的两个最小数的其中的一个,那么这个树直接往上生长就可以了,如果这两个数的和比较大,不是下一步的两个最小数的其中一个,那么就并列生长。)img

    (5)从19,21,32,1117中选出两个权小结点。选中11,17。同时计算出它们的和28。

    img
    (6)从19,21,32,28中选出两个权小结点。选中19,21。同时计算出它们的和40。另起一颗二叉树。

    img
    (7)从32,2840中选出两个权小结点。选中28,32。同时计算出它们的和60。

    img
    (8)从 4060中选出两个权小结点。选中40,60。同时计算出它们的和100。 好了,此时哈夫曼树已经构建好了。

    img

  • 相关阅读:
    PrimeNG之Validation
    PrimeNG之FileUpload
    PrimeNG之DataTable
    PrimeNG之TreeTable
    AngularJS实现可伸缩的页面切换
    ng2-table
    【转】前端框架天下三分:Angular React 和 Vue的比较
    【转】AngularJS动态生成div的ID
    Emprie 使用基础笔记
    开源沙箱CuckooSandbox 介绍与部署
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/13746638.html
Copyright © 2011-2022 走看看