樹形結構定義介紹

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)。

相關文章
相關標籤/搜索