2.8.7 - B Tree

1. B Tree of order m

是一個Balanced m-way search tree,主要用於external search/sort,滿足:

  1. 2 ≤ Root's Degree ≤ m

  2. 除了root和failure nodes外,其餘節點滿: [m2]nodes degreem[\frac{m}{2}]≤node's\ degree≤m

  3. 所有failure nodes皆位於同一level(Balanced)

  4. B tree of order 3又稱2-3 tree;B tree of order 4又稱2-3-4 tree

圖示:

  • 高度h的B Tree of order m

    • 最多節點數 =mh1m1=\frac{m^h-1}{m-1}

    • 最多資料數 =mh1=m^h-1

    • 最少節點數: root's degree = 2,nodes' degree = [m2][\frac{m}{2}]

    1+2+2[m2]+2[m2]2+2[m2]3+...+2[m2]h2  =1+2([m2]0+[m2]1+[m2]2+...+[m2]h2)  =1+2([m2]h11[m2]1)1+2+2[\frac{m}{2}]+2[\frac{m}{2}]^{2}+2[\frac{m}{2}]^{3}+...+2[\frac{m}{2}]^{h-2}\\\ \ = 1+2([\frac{m}{2}]^{0}+[\frac{m}{2}]^{1}+[\frac{m}{2}]^{2}+...+[\frac{m}{2}]^{h-2})\\\ \ =1+2(\frac{[\frac{m}{2}]^{h-1}-1}{[\frac{m}{2}]-1})

  • 最少資料數

    1+2([m2]h11[m2]1)([m2]1)=2[m2]h111+2(\frac{[\frac{m}{2}]^{h-1}-1}{[\frac{m}{2}]-1})*([\frac{m}{2}]-1)\\=2[\frac{m}{2}]^{h-1}-1

2. 操作

2.1 Insert x in an B tree of order m

  1. search(x)找到適合存放的節點

  2. 檢查該節點是否overflow

    1. overflow : Data數 > m-1,作split處理,接著檢查父點

    2. 未overflow: Data數 ≤ m-1,直接放入x

2.2 Delete x in an B tree of order m

步驟流程圖:

  • Rotation

  • Combine

Last updated