• 二叉树相关概念


    1.二叉树(BinaryTree):每个节点最多有两个分支(分支的度小于2)的树结构,可为空树,如下所示。

    2.完全二叉树(Complete Binary Tree):在一棵二叉树中,除了最后一层,都是满的,并且最后一层或者是满的,或者是右边缺少连续若干节点,成为完全二叉树,如图所示:

    具有k个节点的完全二叉树深度为log2(k)+1

    3.满二叉树(Full Tree):一棵深度为k,并且有个节点的二叉树,成为满二叉树,如图所示:

    4.二叉查找树(Binary Search Tree):又称为二叉搜索树,排序二叉树,可为空树,或节点满足左子树所有节点<跟节点<右子树所以节点,不存在相等值的节点,如图所示:

    5.平衡二叉树(Balanced Binary Tree):是一种结构平衡的二叉搜索树,即叶子节点深度差不超过1,能够在O(logn)内完成插入、查找和删除操作,结构如图所示,常见的平衡二叉树有AVl树、红黑树等。

    6.AVL树:又被称为高度平衡树,是最先发明的自平衡二叉查找树,任何节点的两个儿子子树的高度最大差别为1,增加和删除可能需要通过一次或多次树旋转来重新平衡这个树,树图如图所示。

          平衡前*(非AVL树)                     平衡后(AVL树)

    7.红黑树(Red-black tree):是一种自平衡二叉查找树,又称为“对称二叉B树”,除了满足所有二叉查找树的要求之外还需要满足以下要求:

    (1)节点是红色或者是黑色的

    (2)跟节点是黑色的

    (3)每个叶子节点都是黑色的(叶子是NIL节点)

    (4)每个红色节点必须有两个黑色节点(从叶子到根节点的所有简单路径上不可能有两个连续的红色节点)

    (5)从任一节点到其每个叶子的所有简单路径都饱和相同数目的节点

    注:

    NIL节点就是空节点,二叉树中庸NIL节点代替NULL

    简单路径:指顶点序列中顶点不重复出现的路径

     

    8.线索二叉树:添加了直接指向节点的前驱和后继的指针的二叉树,如图所示:

    9.哈夫曼树:又称为最优二叉树,是一种带权路径长度最短的二叉树,霍夫曼树构造过程如下:

    (1).将英文字母按照出现频率从小到大排序,如图所示.

    (2)每个字母代表一个终端节点(叶子),比较字母的出现频率,依次选取最小的两个字母组成一个新的节点,如F.O组成节点值为5

    (3)比较5.R.G.E.T,发现RG的频率最小,故相加4+4=8,得到值为8的节点,依次类推构架成树,如图所示

    (4)将霍夫曼树的所有左链接置为0,右链接置为1,然后从跟节点到叶子节点分别对所有字母进行编码,完成哈夫曼编码,如图所示

  • 相关阅读:
    LinQ Group By
    sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法
    各种网站资源
    Easyui TreeGrid数据源
    MVC中创建自定义视图的t4模板
    栈溢出练习
    Stack Canary
    攻防世界pwn之新手练习区
    开源 PetaPoco 扩展~一个小型轻巧的ORM~
    linux调度全景指南
  • 原文地址:https://www.cnblogs.com/feichangnice/p/7726270.html
Copyright © 2020-2023  润新知