特意說明,本文只簡述b樹和b+樹的基本概念,並不涉及刪除,插入等操作
b樹中所有結點的孩子結點個數的最大值稱為b樹的階,通常用m表示,從查詢效率考慮,要求m>=3。一顆m階的b樹應該滿足以下條件:
每個結點最多有m個分支;而最少分支樹要看是否為根結點,如果是根結點且不是葉子結點,則至少有兩個分支,非根非葉結點至少有(m/2)(向上取整,後面的m/2都是這個意思)個分支。
有n(k<=n<=m)個分支的結點有n-1個關鍵字,它們按遞增順序排序。k=2(根結點)或m/2
每個結點的結構 n
k1k2…kn
p0p1p2…
pn其中,n為該結點中關鍵字的個數;ki為該結點的關鍵字且滿足ki結點內各關鍵字互不相等且按從小到大排序
葉節點處於同一層;可以用空指標表示,是查詢失敗到達的位置
在b+樹中,具有n個關鍵字的結點含有n個分支;而在b樹中,具有n個關鍵字的結點含有n+1個分支。
在b+樹中,每個結點(除根結點以外)中的關鍵字個數n的取值範圍為(m/2)<=n<=m,根結點的取值範圍為1<=n<=m;而在b樹中,它們的取值範圍分別是(m/2)-1<=n<=m-1和1<=n<=m-1;
在b+樹中葉子結點包含資訊,並且包含了全部關鍵字,葉子結點引出的指標指向記錄
b+樹中的所有非葉子結點僅起到乙個索引的作用,即結點中的每個索引項只含有對應子樹的最大關鍵字和指向該子樹的指標,不含有關鍵字對應的記錄的儲存位址;而在b樹中,每個關鍵字對應乙個記錄的儲存位址。
在b+樹上有乙個指標指向關鍵字最小的葉子結點,所有葉子結點鏈結成乙個線性鍊錶,而b樹沒有
資料結構之B樹 B 樹 B 樹 B 樹
b 樹b 樹 b b b 樹是為了磁碟或其它儲存裝置而設計的一種平衡多路查詢樹 相對於二叉,b樹每個內節點有多個分支 與紅黑樹相比,在相同的的節點的情況下,一顆b樹的高度遠遠小於紅黑樹的高度.b樹上操作的時間通常由訪問磁碟的時間和cpu計算時間這兩部分構成,而cpu的速度非常快,所以b樹的操作效率取...
資料結構之B 樹 B 樹
b樹的概念是為了解決一些現實問題而提出的,當資料量太大時,而記憶體中又無法儲存這麼多的資料,那麼就需要將資料儲存在磁碟上,如果繼續採用平衡樹的方法就會帶來一些問題,平衡樹每個節點都會分為兩個節點,那麼當資料太大的時候,樹的高度也會不斷增減,io操作的次數也隨之增加,所以需要降低樹的高度,所以才有了乙...
資料結構之B樹和B 樹整理
又稱多路平衡查詢樹,所有結點的最大孩子數稱為階。一般用m來指代。b樹的性質 對於m階的b樹 每個結點最多有m棵子樹,自身最多有m 1個關鍵字 如果根結點不是終端結點,至少兩課子樹。除根結點外的所有非葉結點至少有 向上取整m 2 棵子樹,那麼也就是至少有 向上取整m 2 1個關鍵字。所有葉節點都位於同...