B樹(B-tree, 平衡的多路查詢樹)的相關知識
阿新 • • 發佈:2018-12-02
目錄
多路搜尋樹
首先,介紹一下2-3樹,指的是其中每一個節點2結點--有兩個孩子或者3結點--三個孩子或者沒有孩子,2節點指的是該節點有一個元素和兩個孩子OR沒有孩子,3節點指的是該節點有兩個元素(一大一小)和三個孩子OR沒有孩子。
特點是所有葉子節點都在同一層,插入和刪除節點都必須保證順序和性質不變。左子樹小於根節點元素小於中子樹小於右根節點元素小於左子樹。
2-3-4樹和2-3樹差不多。
B樹
B樹的結構是一種平衡的多路查詢樹:節點數最大的孩子數目稱為B樹的階(order);
B樹的屬性:
- 如果根節點不是葉子節點,則至少有兩棵字數;
- 每一個非根的分支節點都有k-1個元素和k個孩子,其中 ,每一個葉子結點都有k個元素,其中
- 所有的葉子節點都位於同一層次
- 分支節點資訊包括(),其中有順序。
B樹的結構就是為內外存的資料交換準備的。
B樹最壞的搜尋情況:第一層有一個節點,第二層有兩個,除去根節點,其餘層每個節點至少有棵子樹,則第三層有2*,若m階有n+1個關鍵字,即,即。
B+樹:
B+樹結構適合帶有範圍的查詢。
B+樹是應檔案系統所需而出的一種B樹的變形樹,在B+ 樹中,出現在分支結點中的元素,會被當作他們在該分支結點位置的中序後繼者(葉子結點)中再次出現。另外,每一個葉子節點都會儲存一個指向後一葉子結點的指標。
B+樹和B樹之間的差異在於:
- 有n棵子樹的結點中包含有n個關鍵字
- 所有的葉子結點包含全部關鍵字資訊,及指向含這些關鍵字記錄的指標,葉子節點本身依關鍵字的大小自小而大順序連線
- 所有分支結點可以看成索引,結點中僅含有其子樹中的最大(最小)關鍵字。