資料結構 多叉樹 B樹

2021-10-06 11:41:23 字數 1414 閱讀 3077

二叉樹存在的問題:

二叉樹需要載入到記憶體的,當如果二叉樹的節點很多的時候,就存在如下問題

解決這個問題就需要使用到多叉樹:

在二叉樹中,每個節點有資料項,最多有兩個子節點。如果允許每個節點可以更多的資料項和更多的子節點,就是多叉樹(multiwaytree)

多叉樹通過重新組織節點,減少樹的高度,能對二叉樹進行優化。

2-3樹的基本介紹

2-3樹是最簡單的b樹結構,具有如下特點:

2-3樹 的所有葉子節點都在同一層.(只要是b樹都滿足這個條件)

有兩個子節點的節點叫二節點,二節點要麼沒有子節點,要麼有兩個子節點.

有三個子節點的節點叫三節點,三節點要麼沒有子節點,要麼有三個子節點.

2-3樹是由二節點和三節點構成的樹。

b樹、b+樹、b*樹的基本介紹

b-tree樹即b樹,b即balanced, 平衡的意思。

b樹的說明:

b樹的階: 節點的最多子節點個數。比如2-3樹的階是3, 2-3-4樹的階是4

b-樹的搜尋,從根結點開始,對結點內的關鍵字(有序)序列進行二分查詢,如果命中則結束,否則進入查詢關鍵字所屬範圍的兒子結點重複,直到所對應的兒子指標為空,或已經是葉子結點

關鍵字集合分布在整顆樹中,即葉子節點和非葉子節點都存放資料.

搜尋有可能在非葉子結點結束

其搜尋效能等價於在關鍵字全集內做一-次

b+樹是b樹的一種變體,也是一種多路搜尋樹

b+樹的說明:

b+樹的搜尋與b樹也基本相同, 區別是b+樹只有達到葉子結點才命中(b樹可以在非葉子結點命中) 其效能也等價於在關鍵字全集做一次二分查詢。

所有關鍵字都出現在葉子結點的鍊錶中 (即資料只能在葉子節點[也叫稠密索引] ),且鍊錶中的關鍵字(資料)恰好是有序的。

不可能在非葉子結點命中

非葉子結點相當於是葉子結點的索引 (稀疏索引) ,葉子結點相當於是儲存(關鍵字)資料的資料層

更適合檔案索引系統

b樹和b+樹各有自己的應用場景,不能說b+樹完全比b樹好,反之亦然.

b*樹是b+樹的一種變體,在b+樹的非根和非葉子節點增加指向兄弟的指標。

b*樹的說明:

b* 樹定義了非葉子結點關鍵字個數至少為(2/3)*m,即塊的最低使用率為2/3,而b+樹的塊的最低使用率為b+樹的1/2.

從第1個特點我們可以看出,b*樹分配新結點的概率比b+樹要低,空間使用率更高

資料結構 B樹,B 樹

注意b 樹就是b樹,只是乙個符號.簡介b b 樹是為了磁碟或其它儲存裝置而設計的一種平衡多路查詢樹 相對於二叉,b樹每個內節點有多個分支 與紅黑樹相比,在相同的的節點的情況下,一顆b b 樹的高度遠遠小於紅黑樹的高度 在下面b b 樹的效能分析中會提到 b b 樹上操作的時間通常由訪問磁碟的時間和c...

資料結構 B樹 B 樹

b樹 b樹即 balance tree 也就是平衡樹,它是在搜尋樹的基礎上,維持每乙個節點的左右子樹高度之差不超過1的結構,使得搜尋的平均時間複雜度為o log n 級別。二叉搜尋樹 對於任何乙個節點n,其左邊子樹的所有節點值小於n 其右邊子樹的所有節點的值大於n 給點乙個查詢值,從根節點值開始,一...

資料結構 B樹 B 樹

經典資料結構 b樹與b 樹的解釋 追求極致 磁碟中有兩個機械運動的部分,分別是碟片旋轉和磁臂移動。碟片旋轉就是多少轉每分鐘,而磁碟移動則是在碟片旋轉到指定位置以後,移動磁臂後開始進行資料的讀寫。因為是機械移動,所以盡量減少io,節省開銷 利用平衡樹的優勢加快查詢的穩定性和速度 b樹其分支結點和葉子節...