1. 程式人生 > >查找->動態查找表->B+樹(無代碼)

查找->動態查找表->B+樹(無代碼)

b- b-樹 .com 記錄 每次 tro 刪除 ora 索引

文字描述

B+樹定義

  B+樹是應文件系統所需而出的一種B-樹的變型樹。一棵m階的B+樹和m階的B-樹的差異在於:

  (1)有n棵子樹的結點中含有n個關鍵字

  (2)所有的葉子結點中包含了全部關鍵字的信息,及指向含這些關鍵字記錄的指針,且葉子結點本身依關鍵字的大小從小到大順序鏈接。

  (3)所有的非終端結點可以看成是索引部分,結點中僅含有其子樹中的最大(或最小)關鍵字。

B+樹查找算法

  通常B+樹上有兩個頭指針,一個指向根結點,另一個指向關鍵字最小的葉子結點。因此,可以對B+樹進行兩種查找運算:一種是從最小關鍵字起順序查找,另一種是從根結點開始進行隨機查找。

  在B+樹上進行隨機查找時,若非終端結點上的關鍵字等於給定值,並不終止,而是繼續向下直到葉子結點。因此,在B+樹上進行隨機查找,不管查找成功與否,每次查找都是走了一條從根到葉子結點的路徑。

B+樹插入算法

  B+樹的插入僅在葉子結點上進行,當結點中的關鍵字個數大於m時要分裂成兩個結點,它們所含關鍵字個數分別為技術分享圖片技術分享圖片

。並且,它們的雙親結點中應同時包含這兩個結點中的最大關鍵字。

B+樹刪除算法

  B+樹的刪除也僅在葉子結點進行,當葉子結點中的最大關鍵字被刪除時,其在非終端結點中的值可以作為一個“分界關鍵字”。若因刪除而使結點關鍵字的個數少於技術分享圖片時,其和兄弟結點的合並過程亦和B-樹類似。

示意圖

技術分享圖片

算法分析

B+樹的查找分析類似於B-樹。

代碼實現

查找->動態查找表->B+樹(無代碼)