1. 程式人生 > 資料庫 >B-Tree的性質介紹

B-Tree的性質介紹

B-樹是一種常見的資料結構。和他一起的還有B+樹。

在這裡,需要澄清一下概念。B樹,B-樹,B+樹有什麼區別?他們有什麼關係呢?

其實,從資料結構來講只有2種,也就是B-樹和B+樹。有時候,B-樹又稱為B樹,他們是一個東西。請注意,B-樹中間的“-”是連字元,而不是“減號”。英文中是B-Tree,翻譯成中文後,也就是B樹,有的翻譯喜歡把連字元“-”也帶著,於是就成了B-樹,而B-樹被有些讀者誤讀為B減樹。

介紹B-樹之前,首先看一下一個重要的概念:階。

一個樹的階,就是這個樹中各個節點的子節點個數的最大值。也就是說,如果有的節點有2個子節點,有的節點有4個子節點,最多的有5個子節點,那麼,這個樹的階就是5.

從這個角度來講,二叉樹的階是2.

接下來,我們介紹一下B-樹的主要性質。我們假定B-樹的階為m。一個m階的B-樹,要麼是一個空樹,要麼是具有如下性質的樹:

1,每個節點最多有m個子節點。最少有m/2(向上取整)個節點。或者這麼表述:m/2 <= 子節點個數<= m。但是根節點是例外的,根節點可以最少有2個子節點。

2,每個節點的子節點的個數,比該節點中儲存的關鍵字的個數多1. 也就是,當節點中儲存k個關鍵字時,該節點會有k+ 1個子節點(子樹)。

3,每個節點中的k個關鍵字是按照從小到到排列的,分別記為k1,k2,k3,......kk。那麼該節點會有k+1個指標,記為p0,p1,p2,......pk。並且,p3所指向的子節點中的所有元素,都大於k3,且都小於k4. 如下圖所示。這一點也比較容易理解和記憶,各個指標p整好位於關鍵字k的插空的位置,所以,插空處的指標指向的子節點的元素的值,就理所當然的應該大於指標左邊的元素,小於指標右邊的元素。

4,B-樹是嚴格的平衡查詢樹,它的左右子樹的高度是相等的。且葉子節點處於同一層,並且可以用空節點表示。

一個B-樹的例子:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結