B xx 樹

B 樹

即二叉搜索樹:

  1. 所有非葉子節(jié)點至多擁有兩個子節(jié)點
  2. 所有結(jié)點存儲一個關(guān)鍵字
  3. 非葉子結(jié)點的左指針指向小于其關(guān)鍵字的子樹,右指針指向大于其關(guān)鍵字的子樹

B樹查找順序:從根結(jié)點開始,如果查詢的關(guān)鍵字與結(jié)點的關(guān)鍵字相等,命中;如果比結(jié)點關(guān)鍵字小,進入左子結(jié)點繼續(xù)查找,如果比結(jié)點關(guān)鍵字大,進入右子結(jié)點繼續(xù)查找;

B- 樹

是一種多路搜索樹(并不是二叉的)
1. 定義任意非葉子結(jié)點最多只有M個子結(jié)點,且M>2
2. 根結(jié)點的兒子數(shù)為[2,M]
3. 除根結(jié)點以外的非葉子結(jié)點兒子數(shù)為[M/2,M]
4. 每個結(jié)點存放至少M/2-1和至多M-1個關(guān)鍵字,(至少2個關(guān)鍵字)
5. 非葉子結(jié)點的關(guān)鍵字個數(shù) = 指向兒子的指針個數(shù)-1
6. 非葉子結(jié)點的關(guān)鍵字:K[1]

此坑待續(xù)~~~~

B+ 樹

   B+樹是B-樹的變體,也是一種多路搜索樹:

   1.其定義基本與B-樹同,除了:

   2.非葉子結(jié)點的子樹指針與關(guān)鍵字個數(shù)相同;

   3.非葉子結(jié)點的子樹指針P[i],指向關(guān)鍵字值屬于[K[i], K[i+1])的子樹

   5.為所有葉子結(jié)點增加一個鏈指針;

   6.所有關(guān)鍵字都在葉子結(jié)點出現(xiàn);

   如:(M=3)

B+的搜索與B-樹也基本相同,區(qū)別是B+樹只有達到葉子結(jié)點才命中(B-樹可以在

非葉子結(jié)點命中),其性能也等價于在關(guān)鍵字全集做一次二分查找;

   B+的特性:

   1.所有關(guān)鍵字都出現(xiàn)在葉子結(jié)點的鏈表中(稠密索引),且鏈表中的關(guān)鍵字恰好是有序的;

   2.不可能在非葉子結(jié)點命中;

   3.非葉子結(jié)點相當(dāng)于是葉子結(jié)點的索引(稀疏索引),葉子結(jié)點相當(dāng)于是存儲(關(guān)鍵字)數(shù)據(jù)的數(shù)據(jù)層;

   4.更適合文件索引系統(tǒng);

參考資料 http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容