zoukankan      html  css  js  c++  java
  • 树和森林、赫夫曼树

    一、树

    一个树,除了根节点之外,其它结点都有且仅有一个双亲结点

    树的度:结点的度的最大值

    二、森林

    多个树组成森林

    三、赫夫曼树

    树的路径长度:从树的根结点到每一个结点的路径的长度之和

    书的带权路径长度:树中所有叶子结点的带权路径长度之和

    最优二叉树(赫夫曼树):带权路径最小的二叉树

    构造赫夫曼树???(赫夫曼算法)

      (1)给定n个权值,,这n个权值构成n棵二叉树,这n棵二叉树都只有根节点,这n棵二叉树构成集合F

      (2)在集合F中,找出两个根节点的权值最小的书,作为左右子树,构造成一棵新的二叉树,这棵新的二叉树的根节点的权值是它的左右子树的根节点的权值之和

      (3)从集合F中删除上述两个根结点,并将新二叉树的根结点加入集合F中

      (4)重复(2)(3)直到集合F中仅含有一棵二叉树

      

    赫夫曼编码

      设计一颗赫夫曼树,由此得到的二进制前缀编码就叫做赫夫曼编码

      前缀编码:任何一个字符的前缀编码都不是另一个字符的编码的前缀

    赫夫曼树没有度为1的结点,并且,一开始给定的n个权值对应的节点一定是叶子节点,因此,赫夫曼树的叶子节点是n,结点的总个数是2n-1

     

    四、树的计数问题

    具有n个结点的不同形态的树有多少棵tn

    树的孩子兄弟表示法,将一棵树表示成一颗没有右孩子的二叉树

    已知,具有n个结点的二叉树的不同形态有bn种,由于树是一颗没有右子树的二叉树,因此tn = bn-1

     

  • 相关阅读:
    Electron应用打包、自动升级
    使用javascript处理nginx的请求
    使用Electron开发桌面应用
    VSCode、VBox搭建C/C++开发环境
    树莓派搭建Nexus2私服
    Tom猫小游戏功能实现
    如何配置webpack让浏览器自动补全前缀
    git 常用操作
    数组的一些常用操作
    ES6 的模块化
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9593824.html
Copyright © 2011-2022 走看看