B樹與B 樹的比較

2021-10-03 22:27:35 字數 1039 閱讀 2182

b樹

插入:插入的時候,我們需要記住乙個規則:判斷當前結點key的個數是否小於等於m-1,如果滿足,直接插入即可,如果不滿足,按節點的中間的key將這個節點分為左右兩部分,中間的節點放到父節點中即可。

刪除:刪除葉子節點的元素,如果刪除之後,節點數還是大於m/2,這種情況只要直接刪除即可。

對於非葉子節點的刪除,我們需要用後繼key(元素)覆蓋要刪除的key,然後在後繼key所在的子支中刪除該後繼key。

如果刪除葉子節點,如果刪除元素後元素個數少於(m/2),並且它的兄弟節點的元素大於(m/2),也就是說兄弟節點的元素比最少值m/2還多,將先將父節點的元素移到該節點,然後將兄弟節點的元素再移動到父節點。

首先,還是將先將父節點的元素移到該節點,然後,將當前節點及它的兄弟節點中的key合併,形成乙個新的節點。

b+樹0.有k個子結點的結點必然有k個關鍵碼(b樹的關鍵碼數:(m/2,m))。

1.非葉子節點僅用來索引,不儲存關鍵字記錄的指標,資料都儲存在葉子節點中

2.非葉子節點的子樹指標與關鍵字個數相同;非葉子節點的子樹指標p[i],指向關鍵字值[k[i],k[i+1])的子樹

4.b+樹

插入:當節點元素數量大於m-1的時候,按中間元素**成左右兩部分,中間元素**到父節點當做索引儲存,但是,本身中間元素還是**右邊這一部分的。

刪除:葉子節點有指標的存在,向兄弟節點借元素時,不需要通過父節點了,而是可以直接通過兄弟節移動即可(前提是兄弟節點的元素大於m/2),然後更新父節點的索引;如果兄弟節點的元素不大於m/2(兄弟節點也沒有多餘的元素),則將當前節點和兄弟節點合併,並且刪除父節點中的key

b+樹相比於b樹的優點

3、b+樹天然具備排序功能:b+樹所有的葉子節點資料構成了乙個有序鍊錶,在查詢大小區間的資料時候更方便,資料緊密性很高,快取的命中率也會比b樹高。

4、b+樹全節點遍歷更快:b+樹遍歷整棵樹只需要遍歷所有的葉子節點即可,,而不需要像b樹一樣需要對每一層進行遍歷,這有利於資料庫做全表掃瞄。

B樹 B 樹 紅黑樹比較

b樹是為了提高磁碟或外部儲存裝置查詢效率而產生的一種多路平衡查詢樹。b 樹為b樹的變形結構,用於大多數資料庫或檔案系統的儲存而設計。b樹相對於紅黑樹的區別 在大規模資料儲存的時候,紅黑樹往往出現由於樹的深度過大而造成磁碟io讀寫過於頻繁,進而導致效率低下的情況。為什麼會出現這樣的情況,我們知道要獲取...

B樹(B樹 ,B 樹 ,B 樹)與多叉樹

我們先來看看二叉樹存在的問題 二叉樹的操作 效率較高,但是也存在問題,請看下面的二叉樹 二叉樹需要載入到記憶體的,如果二叉樹的節點少,沒有什麼問題,但是如果二叉樹的節點很多 比如1億 就存在如下問題 問題1 在構建二叉樹時,需要多次進行i o操作 海量資料存在資料庫或檔案中 節點海量,構建二叉樹時,...

資料結構 B 樹,B 樹與B 樹的優缺點比較

b 樹是一種多路搜尋樹 並不一定是二叉的 1970年,r.bayer和e.mccreight提出了一種適用於外查詢的樹,它是一種平衡的多叉樹,稱為b樹 或b 樹 b 樹 一棵m階b樹 balanced tree of order m 是一棵平衡的m路搜尋樹。它或者是空樹,或者是滿足下列性質的樹 1 ...