zoukankan      html  css  js  c++  java
  • 数据结构有关于最优二叉树——最优哈夫曼树的建立过程和哈夫曼编码

      好,现在就来复习一下哈夫曼树的建立过程和哈夫曼编码怎么看,其实很简单,不对,是相当简单~~~~直接用例子来做比较容易理解一点

      问:求画出下面数字的哈夫曼树和所有子节点的哈夫曼编码,数字有:

     

    答:

    哈夫曼树的建立过程:

    (1)在这些数字当中,3和5是最小的,执行相加运算,则:

    (2)然后剩下数字:

    (3)这些数字中6和7是最小的,执行相加运算,则:

    (4)剩下数字:

    (5)那么8和9是最小的,执行相加,则:

    (6)剩下数字:

     

    (7)数字11和13最小,执行相加,则:

    (8)剩下数字:

    (9)那么只剩17和24了,执行相加,则:

    (10)那么我们就看到啦,这就是哈夫曼树,根节点是最顶端的那个数字:41,是不是简单的不行!!!学会了吧,那我们接下来还有哈夫曼编码呢,那就更加简单了,看!

    哈夫曼编码:

    (1)我们把建立成功的哈夫曼树进行一个标记,标记规则:左子树统统标0,右子树统统标1,则:

    (2)标好了之后呢,我们就可以吧那些子节点的编码哦,看的一清二楚,比如:

    编号3的编码为:000

    编号5的编码为:100

    编号6的编码为:011

    编号7的编码为:111

    编号8的编码为:00

    编号9的编码为:10

    编号11的编码为:01

        ...

    所以,我们看到了规则,为:子节点到根节点的所有标记相加就对啦!!是不是很简单,简单的不要不要的??不客气!

                                                                    END

  • 相关阅读:
    hdu1242 Rescue BFS广搜 + 优先队列
    hdu 1430 魔板
    康托展开
    hdu 4394 Digital Square(bfs)
    hdu 1969 Pie
    KMP模板
    hdu 1846 Brave Game
    循环赛日程表
    hdu 1022 Train Problem I
    整数划分问题
  • 原文地址:https://www.cnblogs.com/finalanddistance/p/7001583.html
Copyright © 2011-2022 走看看