b樹概念的理解

2021-08-31 18:33:55 字數 815 閱讀 3114

b 樹又叫平衡多路查詢樹,俗稱b-樹,或者b樹。

樹中每個結點最多含有m個孩子(m>=2);因為每個節點最多有m-1個關鍵字而已

2.除根結點和葉子結點外,其它每個結點至少有[ceil(m / 2)]個孩子(其中ceil(x)是乙個取上限的函式);因為每個節點最少有cell(m/2)-1個關鍵字而已

3.若根結點不是葉子結點,則至少有2個孩子(特殊情況:沒有孩子的根結點,即根結點為葉子結點,整棵樹只有乙個根節點);因為插入的**特性還是一分唯二。

4.所有葉子結點都出現在同一層,葉子結點不包含任何關鍵字資訊(可以看做是外部接點或查詢失敗的接點,實際上這些結點不存在,指向這些結點的指標都為null);(讀者反饋@冷嶽:這裡有錯,葉子節點只是沒有孩子和指向孩子的指標,這些節點也存在,也有元素。@研究者july:其實,關鍵是把什麼當做葉子結點,因為如紅黑樹中,每乙個null指標即當做葉子結點,只是沒畫出來而已)。

因為刪除時合併的特性,所以b-樹的葉子節點都在同一層。

5.每個非終端結點中包含有n個關鍵字資訊: (n,p0,k1,p1,k2,p2,......,kn,pn)。其中:

a)   ki (i=1...n)為關鍵字,且關鍵字按順序公升序排序k(i-1)< ki。 

b)   pi為指向子樹根的接點,且指標p(i-1)指向子樹種所有結點的關鍵字均小於ki,但都大於k(i-1)。 

c)   關鍵字的個數n必須滿足: [ceil(m / 2)-1]<= n <= m-1。如下圖所示:

總結繞死人:k表示關鍵字,p表示指向子樹根結點的指標。k左邊的關鍵字小於右邊的。同時因為**的特性,節點中的關鍵字滿足公式ceil(m / 2)-1]<= n <= m-1

資料結構 B樹 B 樹 B 樹 B 概念

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

紅黑樹,B樹,B 樹,B 樹 理解

紅黑樹rbtree 二叉排序樹 map 就是採用紅黑樹儲存的,紅黑樹 rb tree 是平衡二叉樹,其優點就是樹到葉子節點深度一致,查詢的效率也就一樣,為logn.在實行查詢,插入,刪除的效率都一致,而當是全部靜態資料時,沒有太多優勢,可能採用hash表各合適。hash map是乙個hash tab...

筆記 B 樹的理解

什麼是b樹 校外實習的一段時間中,有用到mysql資料庫,來儲存管理系統資料。我們都知道,mysql資料庫裡的索引是基於hash表或者是b樹。可是b樹的實現細節是什麼樣的?b 樹和b 樹有什麼區別,聯合索引在b 樹中如何儲存等一系列問題我的理解都還不很深入。所以自己找了些資料,留個筆記。資料庫索引用...