数据结构---B-(B)、B+的总结
數(shù)據(jù)結(jié)構(gòu)—B-(B)、B+的總結(jié)
原理:參考趣學(xué)數(shù)據(jù)結(jié)構(gòu)
m階B-樹規(guī)則(有序的(左子樹的元素值<根節(jié)點的元素值<右子樹的元素值)、平衡的(每個結(jié)點的左右子樹的高度差<=1)、多路的(每個結(jié)點多個關(guān)鍵碼)下同):
1.根節(jié)點至少2個子樹
2.除了根節(jié)點和葉子結(jié)點,其他結(jié)點的子樹至少為m/2向上取整個子樹
3.除了葉子結(jié)點,其他結(jié)點的關(guān)鍵碼的個數(shù)=這個結(jié)點的子樹-1
4.指向空指針的結(jié)點為失敗結(jié)點
5.每個結(jié)點最多有m顆子樹
查找時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),遞歸根據(jù)有序性查找
插入時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),不滿足規(guī)則最中間結(jié)點元素上溢,只有樹根上溢,樹的高度才加1
刪除結(jié)點時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),左借、右借、合并
應(yīng)用:大量相關(guān)信息存儲后的查找、插入、修改中。
m階B+樹規(guī)則(有序的、平衡的、多路的、葉子結(jié)點構(gòu)成一個鏈表,包含所有結(jié)點元素):
1.根節(jié)點至少2個子樹
2.除了根節(jié)點和葉子結(jié)點,其他結(jié)點的子樹至少為m/2向上取整個子樹
3.除了葉子結(jié)點,其他結(jié)點的關(guān)鍵碼的個數(shù)=這個結(jié)點的子樹
4.指向空指針的結(jié)點為失敗結(jié)點
5.每個結(jié)點最多有m顆子樹
6.倒數(shù)第一層包含了所有的結(jié)點信息,并且構(gòu)成有序的多關(guān)鍵碼結(jié)點鏈表
查找時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),遞歸根據(jù)有序性查找,還可以進行范圍查找,先查其實值,然后通過最后一層的同層鏈表向后繼續(xù)查找
插入時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),分裂,中間結(jié)點上溢,如果跟結(jié)點為根節(jié)點上溢,則樹的高度加1
刪除結(jié)點時間復(fù)雜度比較:O(以m為底數(shù)n為真數(shù)的對數(shù)(logmn)),左借、右借、合并
應(yīng)用:文件索引系統(tǒng)
學(xué)習(xí)一篇野指針方面的博客:
https://blog.csdn.net/acoolgiser/article/details/100133305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163008191516780255221683%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163008191516780255221683&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-100133305.first_rank_v2_pc_rank_v29&utm_term=%E9%87%8E%E6%8C%87%E9%92%88&spm=1018.2226.3001.4187
如果存在什么問題,歡迎批評指正!謝謝!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的数据结构---B-(B)、B+的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word List 14
- 下一篇: 广义表的学习(原理和代码)