B樹與B 樹區別

2021-09-26 13:58:30 字數 1236 閱讀 3121

b樹是一種平衡多路查詢樹,它的每乙個節點最多包含k個孩子,k被稱作為b樹的階,k的大小取決於磁碟頁的大小。

一棵m階b樹(balanced tree of order m)是一棵平衡的m路搜尋樹。它或者是空樹,或者是滿足下列性質的樹:

根結點至少有兩個子女;

每個中間節點都包含k-1個元素和k個孩子,其中 m/2 <= k <= m

每乙個葉子節點都包含k-1個元素,其中 m/2 <= k <= m

所有的葉子結點都位於同一層。

每個節點中的元素從小到大排列,節點當中k-1個元素正好是k個孩子包含的元素的值域分劃。

b+樹是b樹基礎上為了更充分的利用結點空間,讓遍歷查詢速度更穩定而擴充套件的結構,它規定只在葉子節點存資料,非葉子結點只存索引,且葉子結點用乙個鍊錶連線起來。

乙個m階的b+樹具有如下幾個特徵:

有k個子樹的中間節點包含有k個元素(b樹中是k-1個元素),每個元素不儲存資料,只用來索引,所有資料都儲存在葉子節點。

所有的葉子結點中包含了全部元素的資訊,及指向含這些元素記錄的指標,且葉子結點本身依關鍵字的大小自小而大順序鏈結。

所有的中間節點元素都同時存在於子節點,在子節點元素中是最大(或最小)元素。

b樹的所有節點除了包含資料索引外,還都包含實際的衛星資料,而b+樹的非葉子節點只進行資料索引,不包含衛星資料,所有的實際資料都在葉子節點儲存。

由於衛星資料儲存結構不同,b樹的查詢效率最快為根節點,最慢為葉子節點,而b+樹的每次查詢都是在葉子節點,相對穩定。

由於b+樹的非葉子節點只存貯資料索引,不包含衛星資料,那相同大小的磁碟頁相較於b樹,能更多的存放數葉子節點,從而降低樹結構的整體高度,減少查詢時的磁碟io操作。

b+樹的範圍查詢效率更快,b樹需要從根節點依次向下遍歷,查詢到最小值,然後反向倒推遍歷整個樹結構,需要做區域性的中序遍歷,可能要跨層訪問,直到找到最大值為止,而b+樹只需要找到最小值,然後沿著葉子鍊錶索引逐個比較找到最大值即可。

B樹 B 樹 B 樹 B 樹的區別

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

B樹 B 樹 B 樹 B 樹的區別

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

B樹與B 樹的區別

就是b 樹,不讀b減樹,那讀槓,網上有很多把它們混淆了 定義 是一棵平衡的m路平衡搜尋樹 其結構如下 關鍵字存在於整棵樹,每個結點中關鍵字從小到大排列,當前節點關鍵字數量為n,則子節點個數為n 1,查詢時若能在當前節點找到對應關鍵字,則返回,否則到其範圍對應的子節點進行遞迴查詢。資料層 可如下表示 ...