基础数据结构--树

186 阅读1分钟

树,开始学习

树的定义

  • 根节点
  • 父节点,左子树,右子树
  • 叶子结点

树的种类

  • 二叉树(n叉树):每个节点最多只有2个节点

    • 平衡二叉树:对于二叉树的每个节点,他的左右子树的高度差不超过1
    • 满二叉树:每个节点(除了叶子节点)都有两个节点(想象硕果累累的苹果树),所有子节点都在同一层
    • 完全二叉树:除了最后一层,其他层都是满的,而且叶子节点都集中在左边(营养不均衡的苹果树)
    • 二叉查找树:(二分查找),左节点<根节点<右节点的值
  • 红黑树

    • 红黑书也是二叉(自!!!)平衡查找树,不过我实在是记不得他的性质,所以要把他单独拿出来,加深记忆

    • 每个节点要么红的,要么是黑的

    • 根结点是黑色的

    • 叶子结点是黑的

    • 红色节点的儿子是黑的

    • 节点的每条路径上的黑色节点的数量是相同的

    • 如何实现自平衡

      • 旋转
      • 变色
  • B树

  • B树也是一个自平衡的树,对于增删改查都是log级别的,是一个一般化的二叉查找树(m阶),可以最多拥有m个子节点 放张图理解一下下

    • 根节点至少拥有2个子节点
    • 每个叶子结点都有k-1个元素和k个孩子,m/2 <= k <= m
    • 每个叶子结点都包含k-1个元素
    • 叶子结点都在同一层
    • 节点的元素按照大小排列
    • 数据库索引
  • B+树