多路查詢樹 B樹

2021-07-23 10:58:28 字數 1027 閱讀 2140

多路查詢樹(multi-way search tree),其每乙個結點的孩子數可以多於兩個,且每乙個結點處可以儲存多個元素。

在這裡,我們講解它的4種特殊形式:2-3樹、2-3-4樹、b樹和b+樹。

2-3樹是這樣的一顆多路查詢樹:其中的每乙個結點都具有兩個孩子(我們稱它為2結點)或三個孩子(我們稱它為3結點)。

乙個2結點包含乙個元素和兩個孩子(或沒有孩子),左子樹包含的元素小於該元素,右子樹包含的元素大於該元素。2結點要麼沒有孩子,要有就有兩個,不能只有乙個孩子。

乙個3結點包含一小一大兩個元素和三個孩子(或沒有孩子),乙個3結點要麼沒有孩子,要有就有3個。如果某個3結點有孩子的話,左子樹包含的元素小於較小元素的元素,右子樹包含的元素大於較大元素的元素,中間子樹包含介於兩元素之間的元素。

並且2-3樹中所有的葉子都在同一層次上。

有了2-3樹的講解,2-3-4樹就很好理解了,它其實就是2-3樹的概念擴充套件,包括了 4結點的使用。乙個4結點包含小中大三個元素和4個孩子(或沒有孩子),乙個4結點要麼沒有孩子,要麼具有4個孩子。

b樹(b-tree)是一種平衡的多路查詢樹,2-3樹和2-3-4樹都是b樹的特例。結點最大的孩子數目稱為b樹的階(order),因此2-3樹是3階b樹,2-3-4樹是4階b樹。

b+樹是應檔案系統所需而出的一種b樹的變形樹,注意嚴格意義上講,它其實已經不是樹了。在b樹中,每乙個元素在該樹中只出現一次,有可能在葉子結點上,也有可能在分支結點上。而在b+樹種,出現在分支結點中的元素會被當作它們在該分支結點位置的中序後繼者(葉子結點)中再次列出。另外,每乙個葉子結點都會儲存乙個指向後一葉子結點的指標。

如下圖所示,就是一顆b+樹的示意,灰色關鍵字即是根結點中的關鍵字在葉子結點中再次列出,並且所有葉子結點都鏈結在一起。

多路查詢樹 B樹

多路查詢樹,其每乙個結點的孩子數可以多於兩個,且每乙個結點處可以儲存多個元素。每乙個結點都具有兩個孩子 2結點 或三個孩子 3結點 乙個2結點包含乙個元素和兩個孩子 或沒有孩子 左子樹包含的元素小於該元素,右子樹包含的元素大於該元素。乙個3結點包含一小一大兩個元素和三個孩子 或沒有孩子 左子樹包含小...

多路查詢樹 B樹

多路查詢樹每乙個結點的孩子數可以多於兩個,且每乙個節點處可以儲存多個元素。2 3樹的每乙個結點都具有兩個孩子 2結點 或三個孩子 3結點 乙個2結點包含乙個元素和兩個孩子 或沒有孩子 且與二叉排序樹類似,左子樹包含的元素小於該元素,右子樹包含的元素大於該元素與二叉排序樹不同的是,這個2結點要麼沒有孩...

多路查詢樹 2 3樹 B樹

2 3樹是最簡單的b 樹 或 樹 結構,其每個非葉節點都有兩個或三個子女,而且所有葉都在統一層上。2 3樹不是二叉樹,其節點可擁有3個孩子。不過,2 3樹與滿二叉樹相似。高為h的2 3樹包含的節點數大於等於高度為h的滿二叉樹的節點數,即至少有2 h 1個節點。其他2 3樹 詳細 乙個節點要麼沒有子節...