B Tree的性質介紹

2022-09-25 10:36:13 字數 913 閱讀 7810

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-樹的例子:

總結

(面試)B Tree和B Tree的性質和區別

b tree指的是 balance tree,也就是平衡樹。平衡樹是一顆查詢樹,並且所有葉子節點位於同一層。b tree 是基於 b tree 和葉子節點順序訪問指標進行實現,它具有 b tree 的平衡性,並且通過順序訪問指標來提高 區間查詢的效能。b tree的性質 一棵m階的b tree有如下...

Btree 與 Btree 的區別

mysql 的優化,主要就是索引的優化。因而需要對索引的資料結構有乙個了解。最常用的索引就是b tree 索引,而且b tree 是由btree 演變而來。在講解btree 之前,首先說一下系統對磁碟的讀取。計算機系統通過將磁碟的內容讀入記憶體中然後才對資料進行操作。當然不可能將全部磁碟的內容讀入記...

B Tree與B Tree 的區別

1 b 樹的關鍵字和記錄是放在一起的,葉子節點可以看作外部節點,不包含任何資訊 b 樹的非葉子節點中只有關鍵字和指向下乙個節點的索引,記錄只放在葉子節點中。2 在b 樹中,越靠近根節點的記錄查詢時間越快,只要找到關鍵字即可確定記錄的存在 而b 樹中每個記錄的查詢時間基本是一樣的,都需要從根節點走到葉...