数据结构---B-(B)、B+的总结
數據結構—B-(B)、B+的總結
原理:參考趣學數據結構
m階B-樹規則(有序的(左子樹的元素值<根節點的元素值<右子樹的元素值)、平衡的(每個結點的左右子樹的高度差<=1)、多路的(每個結點多個關鍵碼)下同):
1.根節點至少2個子樹
2.除了根節點和葉子結點,其他結點的子樹至少為m/2向上取整個子樹
3.除了葉子結點,其他結點的關鍵碼的個數=這個結點的子樹-1
4.指向空指針的結點為失敗結點
5.每個結點最多有m顆子樹
查找時間復雜度比較:O(以m為底數n為真數的對數(logmn)),遞歸根據有序性查找
插入時間復雜度比較:O(以m為底數n為真數的對數(logmn)),不滿足規則最中間結點元素上溢,只有樹根上溢,樹的高度才加1
刪除結點時間復雜度比較:O(以m為底數n為真數的對數(logmn)),左借、右借、合并
應用:大量相關信息存儲后的查找、插入、修改中。
m階B+樹規則(有序的、平衡的、多路的、葉子結點構成一個鏈表,包含所有結點元素):
1.根節點至少2個子樹
2.除了根節點和葉子結點,其他結點的子樹至少為m/2向上取整個子樹
3.除了葉子結點,其他結點的關鍵碼的個數=這個結點的子樹
4.指向空指針的結點為失敗結點
5.每個結點最多有m顆子樹
6.倒數第一層包含了所有的結點信息,并且構成有序的多關鍵碼結點鏈表
查找時間復雜度比較:O(以m為底數n為真數的對數(logmn)),遞歸根據有序性查找,還可以進行范圍查找,先查其實值,然后通過最后一層的同層鏈表向后繼續查找
插入時間復雜度比較:O(以m為底數n為真數的對數(logmn)),分裂,中間結點上溢,如果跟結點為根節點上溢,則樹的高度加1
刪除結點時間復雜度比較:O(以m為底數n為真數的對數(logmn)),左借、右借、合并
應用:文件索引系統
學習一篇野指針方面的博客:
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
如果存在什么問題,歡迎批評指正!謝謝!
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的数据结构---B-(B)、B+的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word List 14
- 下一篇: 广义表的学习(原理和代码)