查找->動態查找表->B+樹(無代碼)
阿新 • • 發佈:2018-08-28
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+樹(無代碼)