數據結構(B樹)

多路查找樹spa

  特色:沒個結點的孩子能夠有多與兩個孩子,且每一個結點處可存放多個元素,因此元素之間存在某種特定的排序關係3d

2-3樹blog

  • 多路查找樹中每一個結點都具備兩個或三個子結點,稱爲2-3樹。
  • 一個結點擁有兩個子結點,稱爲2結點,擁有三個子結點,稱爲3結點
  • 與二叉排序樹相似,左子樹包含元素小於結點元素,右子樹大於結點元素
  • 與二叉樹不一樣的是,這個2結點要麼沒有子結點,要有就應該有兩個孩子,且要求葉子結點都要在同層次上高度平衡

  插入:排序

  • 空樹,插入時直接插入2結點做爲根結點
  • 插入位置爲二節點,將二結點變爲三結點
  • 插入的葉子結點是三節點,葉子的雙親是二結點;那就要擴展雙親爲三結點,並把這個三結點拆分爲兩個二結點(一個存儲到雙親中,另一個和插入元素做爲雙親的兩顆子樹)
  • 當初入葉子是三節點,而且向上的雙親都是三結點,則這時須要從下向上拆分,增長樹的高度

  刪除:擴展

  • 刪除元素位於三結點葉子結點,直接將該三結點變爲二結點便可
  • 刪除元素位於二結點:雙親爲二結點,且兄弟也是二節點
  • 刪除元素位於二結點:雙親爲二結點,且兄弟爲三結點
  • 刪除元素位於二結點:雙親爲三結點
  • 刪除結點爲一滿二叉樹的狀況(減層)
  • 刪除的是一個二結點的雙親結點(子結點有無三結點是兩種不一樣的狀況)
  • 刪除的是一個三結點的雙親結點(子結點有無三結點是兩種不一樣的狀況)

B樹二叉樹

  是一種平衡的多路查找樹,2-3樹和2-3-4樹都是B樹特例,結點最大子樹數目稱爲B樹的階im

一個m接的B樹具備以下屬性d3

  • 非葉子結點至少有 m/2 顆子樹(求上限),最少有m個子樹(因此6階B樹最少有3顆子樹)
  • 每個非根的分支結點,都有【k-1】個元素(關鍵字)和【k】個孩子
  • 全部葉子結點必須位於同一層
  • 每個分支結點的子結點樹都該結點的元素多一個

相關文章
相關標籤/搜索