BST、AVL、B-、B+、紅黑樹的基本定義和結構

BST

即二叉搜索樹

基本定義:

  • 對於任意一個節點,若有左子樹,則左子樹的所有節點都小於當前節點;若有右節點,則所有右節點都大於當前節點,即滿足遞歸定義。

BST

AVL

即平衡二叉搜索樹

基本定義:

  • 二叉搜索樹(BST)的性質,平衡二叉搜索樹也滿足;
  • 對於任意一個節點,若其左子樹的樹高爲HL,其右子樹的樹高爲HR,則||HL-HR|| < 2

AVL

B-樹

基本定義:(M階B-樹)

  • 對於節點(p0,k1,p1,k2…,kn,pn),pi節點下的值都小於k(i+1), ki< pi節點下的值 < ki+1 (i >=1)
  • 除非根節點是葉子節點,否則至少有兩個節點;
  • 每個節點至多有M個子節點,即每個節點至多有M-1個關鍵字key;
  • 有K個子節點的非葉子節點包含K-1個健;
  • 每個非葉子節點(根節點除外)至少有M/2(向上取整)個子節點;
  • 所有的葉子節點都在同一層

B-樹

B+樹

基本性質:

  • 除了下面一些條件和B-樹不同外,其他基本性質和B-樹相同;
  • 所有的關鍵字都出現在葉子節點的鏈表中,且鏈表中的關鍵字恰好是有序的;
  • 有K個子樹的節點包含K個元素,且這K個元素不保存數據,只用來作爲索引,所有的數據都保存在葉子節點上;
  • 所有的中間節點元素都同時存在於子節點,在子節點元素中是最大(或最小)元素。
  • 爲所有的葉子節點增加一個鏈指針;

B+樹

B*樹

基本性質:

  • 非葉子節點的兄弟節點之間加入了一個指針,其他的性質和B+樹相同;

B*

紅黑樹

基本性質:

  • 每個節點是黑色的或者紅色的;
  • 根節點是黑色的;
  • 每個葉子節點(NIL)是黑色的;
  • 如果一個節點是紅色的,則其兩個兒子節點都是黑色的;
  • 對於每一個節點,從該節點到其所有子孫葉子節點具有相同數目的黑色節點;

紅黑樹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章