• 树、二叉树、斜树、满二叉树、完全二叉树、二叉排序树、平衡二叉搜索树(AVL树) 、哈夫曼树(Huffman tree)、B树、B+Tree、B*树


    一、树(Tree)

    1.仅有一个根结点
    2.除根结点外,其他结点只有一个父级结点。
    3.所有结点可以有零个或多个子级结点。

    分支结点(又称非终端结点) 叶子结点(又称终端结点)

    二、二叉树(Binary Tree)

    二分法是一种查找算法,二叉树是基于二分法衍生的结构,可以提高查找数据的速度;
    二分法的时间复杂度为O(log2n)

    1. 特点

    每个结点至多只有两棵子树(通俗的说就是每个节点分叉不能超过2次)
    二叉树有左子树、右子树之分,其次序不能颠倒。即使树中结点只有一棵子树,也要区分它是左子树还是右子树
    只有跟结点,可以称空二叉树

    2. 特殊二叉树

    2.1 斜树

    所有的结点都只有左子树的二叉树叫左斜树。
    所有结点都是只有右子树的二叉树叫右斜树。
    这两者统称为斜树。

    2.2 满二叉树(Full Binary Tree)

    叶子结点都集中最下一层。
    除最下一层外,其它层的结点都有2个子结点

    2.3 完全二叉树(Complete Binary Tree)

    叶子结点只可能在最下的两层上出现。
    当叶子结点的上一层只有1度时(只有一个分叉),此叶子结点必须是左叶子结点

    2.4 二叉排序树(Binary Sort Tree)/ 二叉搜索树(Binary search tree)

    左子树上所有结点的值都小于根结点的值,且右子树上所有结点的值都大于根结点的值;
    二叉排序树和二叉搜索树互为别名, 指的是同一种树。

    2.5 红黑树(Red Black Tree)

    红黑树是一种特化的二叉查找树
    根结点是黑色,结点是红色或黑色,所有叶子都是黑色,每个红色结点的两个子结点都是黑色
    从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点

    2.6 平衡二叉树(Balanced Binary Tree)

    树上任一结点的左子树和右子树的深度之差不超过1。

    2.7 平衡二叉搜索树(AVL树)

    为了解决二叉排序树不平衡的问题,有了一种新的数据结构,平衡二叉搜索树(AVL树)
    平衡二叉搜索树是计算每个节点的平衡因子(balance factor),
    平衡因子是一个节点的左孩子的高度减去其右孩子的高度,
    高度就是指从一个节点出发到达最远叶子节点所经过的最长路径。

    2.8 哈夫曼树(Huffman tree)/ 最优二叉树

    哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近
    结点的权:若将树中结点赋给一个某种含义的数值,则这个数值称为该结点的权
    结点的带权路径长度为: 从根结点到该结点之间的路经长度与该结点的权的乘积

    三、多叉树

    多叉树用于区别二叉树,多叉树上的结点的子结点可以是超过2的

    3.1 B树(B-Tree、Balanced Tree)

    B树又叫B-Tree、B树属于多叉树(平衡多路查找树)
    B树比二叉树优势在于,同样的数据量,B树层级更小,宽度更宽,且B树可以达到自平衡结构
    B树在每个节点都可以存储数据和子节点的指针

    3.2 B+Tree

    B+Tree就是B树的改进版本,B+Tree只在叶子节点才可以存储数据, 非叶子节点只会存储子节点的指针
    B+Tree的性能要远远高于B树,
    B树在范围查找时整个过程非常繁琐,采用B+树,只需要在链表上做遍历即可
    当树的层级越高,磁盘IO的读取次数也会越多,查询性能越差
    在文件系统和数据库系统中的索引,常常B树和B+树

    3.3 B*树

    B*tree就是在B+tree的基础上,对所有的节点都用指针连接,所有节点之间都是有链接的(并不是直接的连接)

  • 相关阅读:
    分布式通信RMI简述
    Django源码学习——配置文件解析
    Spring Cloud(十):Spring Cloud Skywalking
    关于pycharm打开时一直加载中的解决办法
    官宣出自己的博客啦
    Apache Doris 行列转换可以这样玩
    大学生游戏静态HTML网页设计 (HTML+CSS+JS仿英雄联盟网站15页)
    第三章 标准单元库(下)
    有关cache的dirty比特位和Valid比特位的理解
    博客系统(java,MySQL,HTML)
  • 原文地址:https://blog.csdn.net/sinat_16998945/article/details/126722266