資料結構 之 B 樹

2021-10-11 22:54:45 字數 992 閱讀 8475

b 樹又叫平衡多路查詢樹,乙個 m 階的 b 樹的特徵如下:

樹中每個節點至多有 m 個孩子

除根節點和葉子節點外,其他每個節點至少有ceil(m / 2)(ceil(x) 是乙個取上限函式) 個孩子

若根節點不是葉子節點,則至少有 2 個孩子。特殊情況:沒有孩子的根節點,即根節點為葉子節點,整棵樹只有乙個根節點

所有葉子節點都出現在同一層,葉子節點不包含任何關鍵資訊(可以看做是外部節點或查詢失敗的節點,實際上這些節點不存在,指向這些節點的指標都為 null)

每個非終端節點中包含有 n 個關鍵字資訊:(n,p0,k1,p1,k2,p2,…,kn,pn),其中:ki(i=1,…,n)為關鍵字,且關鍵字按順序排序(k(i-1) < ki),pi 為指向子樹根的接點,且指標 p(i-1)指向子樹種所有結點的關鍵字均小於 ki,但都大於 k(i-1),關鍵字的個數 n 必須滿足: ceil(m / 2)-1 <= n <= m-1

一棵 m 階的 b+樹 和 m 階的 b 樹 的差異在於:

1.有 n 棵子樹的結點中含有 n 個關鍵字; (b-tree 是 n 棵子樹有 n-1 個關鍵字)

2.所有的葉子結點中包含了全部關鍵字的資訊,及指向含有這些關鍵字記錄的指標,且葉子結點本

身依關鍵字的大小自小而大的順序鏈結。 (b-tree 的葉子節點並沒有包括全部需要查詢的資訊)

3.所有的非終端結點可以看成是索引部分,結點中僅含有其子樹根結點中最大(或最小)關鍵字。

(b-tree 的非終節點也包含需要查詢的有效資訊)

資料結構之B 樹 B 樹

b樹的概念是為了解決一些現實問題而提出的,當資料量太大時,而記憶體中又無法儲存這麼多的資料,那麼就需要將資料儲存在磁碟上,如果繼續採用平衡樹的方法就會帶來一些問題,平衡樹每個節點都會分為兩個節點,那麼當資料太大的時候,樹的高度也會不斷增減,io操作的次數也隨之增加,所以需要降低樹的高度,所以才有了乙...

資料結構之B樹 B 樹 B 樹 B 樹

b 樹b 樹 b b b 樹是為了磁碟或其它儲存裝置而設計的一種平衡多路查詢樹 相對於二叉,b樹每個內節點有多個分支 與紅黑樹相比,在相同的的節點的情況下,一顆b樹的高度遠遠小於紅黑樹的高度.b樹上操作的時間通常由訪問磁碟的時間和cpu計算時間這兩部分構成,而cpu的速度非常快,所以b樹的操作效率取...

資料結構之B樹

1970年,r.bayer和e.mccreight提出了一種適用於外查詢的樹,它是一種平衡的多叉樹,稱為b樹 或b 樹 b 樹 一棵m階b樹 balanced tree of order m 是一棵平衡的m路搜尋樹。它或者是空樹,或者是滿足下列性質的樹 1 根結點至少有兩個子女 2 每個節點最多有m...