簡記B 樹和B 樹的區別

2021-10-11 20:46:39 字數 669 閱讀 5273

對於b+樹和b-樹的區別,網上講解的都很籠統,大部分都是把概念照抄了一遍,忍不住吐槽,我要是過來看概念,我翻書不就行了,還用得著你來賺流量?

b+和b-樹的概念,對於我這樣的新人來說,非常的晦澀難懂,但還是得理清楚。言歸正傳。

我簡單梳理了三個區別。

b-樹的結點,是從雙親節點中的某關鍵字的左側或者右側,或者兩個關鍵字中間引出的,代表引出的節點中的所有關鍵字,都大於(小於)雙親節點中前乙個(後1個)關鍵字。而b+樹的節點,是從雙親節點的某個關鍵字引出的,雙親節點有幾個關鍵字,就能引出多少個孩子節點。雙親節點中的每個關鍵字,都是該關鍵字引出的孩子節點中的最大值。這是最最最重要的一點區別,這一點理解了,後面就好理解了。

b-樹規定乙個節點最少有m/2(向上取整)個關鍵字,即最少要有m/2(向上取整)個孩子節點。最多要有m-1個關鍵字,即最多有m個孩子節點。而b+樹,最多乙個節點有m個關鍵字,即有m個孩子節點,最少有m/2個關鍵字,即m/2個孩子節點。b+和b-這一點的區別,歸根結底還是得理解第一點的區別。

b-樹根節點,要麼沒有子樹,要麼有乙個關鍵字,即最少有2個孩子節點。b+樹根節點,要麼沒有子樹,要麼最少有兩個關鍵字,即2個孩子節點。這一點區別,也源於第一點區別。

後續不一一枚舉了,比如b+樹的外部節點可以順序查詢之類的特點,理解了第一點特點,就茅塞頓開了。

最後,祝好運。

B樹,B 樹和B 樹 B 樹的區別

之前一些概念混淆,現在更正一下。b樹 b tree樹即b樹,b即balanced,平衡的意思。因為b樹的原英文名稱為b tree,而國內很多人喜歡把b tree譯作b 樹,其實,這種直譯不好,容易產生誤解。如人們可能會以為b 樹是一種樹,而b樹又是一種樹。事實上,b tree就是指b樹。特此說明。先...

B樹,B 樹和B 樹的區別

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

B樹,B 樹和B 樹的區別

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