B 樹(B樹)的性質

2021-09-05 11:14:20 字數 1009 閱讀 4401

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

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

其實,從資料結構來講只有2種,也就是b-樹和b+樹。有時候,b-樹又稱為b樹,他們是乙個東西。請注意,b-樹中間的「-」是連字元,而不是「減號」。英文中是b-tree,翻譯成中文後,也就是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-樹的例子:

參考資料:

B樹,B 樹,B 樹,B 樹

小彰的部落格 b樹 即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點...

B樹 B 樹 B 樹 B 樹

b 樹即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left 和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就...

B樹 B 樹 B 樹 B 樹

b樹 即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就進...