树形结构定义介绍

B树

B-树就是B树,中间是横线不是减号。B树是一种多路平衡查找树。数据库

B-树(Balance Tree),一个m阶的B树具备以下几个特征: 性能

1.根结点至少有两个子女。指针

2.每一个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= mblog

3.每个叶子节点都包含k-1个元素,其中 m/2 <= k <= m排序

4.全部的叶子结点都位于同一层。索引

5.每一个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。 it

 

B+ 树

一个m阶的B+树具备以下几个特征:class

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每一个元素不保存数据,只用来索引,全部数据都保存在叶子节点。(中间节点能够存更多元素)二叉树

2.全部的叶子结点中包含了所有元素的信息,及指向含这些元素记录的指针,且叶子结点自己依关键字的大小自小而大顺序连接。im

3.全部的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

在数据库的汇集索引(Clustered Index)中,叶子节点直接包含卫星数据。在非汇集索引(NonClustered Index)中,叶子节点带有指向卫星数据的指针。

B+树相比B树的优点有三个:

  1. IO次数更少,中间节点不存数据可容纳更多元素 
  2. 查询性能稳定,都须要定位到叶子节点
  3. 范围查询简便,叶子节点之间是有序链表

 

二叉查找树(BST)

  1. 左子树上全部结点的值均小于或等于它的根结点的值。
  2. 右子树上全部结点的值均大于或等于它的根结点的值。
  3. 左、右子树也分别为二叉排序树。

 

红黑二叉树

红黑树是一种近似平衡的二叉查找树,它可以确保任何一个节点的左右子树的高度差不会超过两者中较低那个的一倍。

具体来讲,红黑树是知足以下条件的二叉查找树(binary search tree):

  1. 每一个节点要么是红色,要么是黑色。
  2. 根节点必须是黑色
  3. 红色节点不能连续(也便是,红色节点的孩子和父亲都不能是红色)。
  4. 对于每一个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。

在树的结构发生改变时(插入或者删除操做),每每会破坏上述条件3或条件4,须要经过调整使得查找树从新知足红黑树的条件。

调整能够分为两类:一类是颜色调整,即改变某个节点的颜色;另外一类是结构调整,集改变检索树的结构关系。结构调整过程包含两个基本操做:左旋(Rotate Left),右旋(RotateRight)。

相关文章
相关标签/搜索