• 数据结构-几种Tree


    1.二叉查找树 或 二叉排序树 (BST)
    性质:左子树的键值小于根的键值,右子树的键值大于根的键值。


    2.平衡二叉树(AVL Tree)
    它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
    在AVL树中增删节点会导致AVL树失去平衡,有四种情况:LL,LR,RL,RR
    根节点X1(L或R)孩子节点的X2(L或R)孩子节点 含有非空节点导致二叉树失去平衡
    解决方法:
      LL(插入到左孩子的左子树中):右旋
      LR(插入到左孩子的右子树中):先围绕根节点的左孩子节点左旋,再围绕根节点右旋
      RR(插入到右孩子的左子树中):左旋
      RL(插入到右孩子的右子树中):先围绕根节点的右孩子节点右旋,再围绕根节点左旋


    3.红黑树
    一种自平衡的二叉查找树
      1)节点是红色或黑色。  
      2)根节点是黑色。
      3)每个叶子节点都是黑色的空节点(NIL节点)。
      4)每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
      5)从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
    保证了红黑树的自平衡,红黑树从根节点到叶子节点的最长路径不会超过最短路径的2倍
    在插入或删除时需要通过变色或旋转来调整(情况较为复杂)


    4.平衡多路查找树(B-Tree , Balance Tree)
    B-Tree是为磁盘等外存储设备设计的一种平衡查找树,减少访问磁盘I/O的次数
    主要应用于文件系统以及部分数据库索引,如:非关系数据库MangoDB
    m阶B-Tree特征:(k∈[m/2,m])
      1)根节点至少有2个子节点
      2)k个子树 , 节点元素数 k-1
      3)所有叶子结点位于同一层(满树)
      4)每个节点中的元素从小到大排列


    5.B+Tree
    大部分关系型数据库使用B+树作为索引,如MySQL
    B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构
    m阶B-Tree特征:(k∈[m/2,m])
      1)k个子树,节点元素数为 k,
      2)每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
      所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,
      且叶子结点本身依关键字的大小自小而大顺序链接。
      3)所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素

  • 相关阅读:
    11.3 校内模拟赛
    11.2 模拟赛题解报告
    11.1 校内模拟赛题解报告
    CF710E Generate a String
    CF165E Compatible Numbers
    CF1092F Tree with Maximum Cost
    2021,10,29 模拟赛题解报告
    LCT学习笔记
    FFT 快速傅里叶变换学习笔记
    拉格朗日插值学习笔记
  • 原文地址:https://www.cnblogs.com/mznsndy/p/11646910.html
Copyright © 2020-2023  润新知