Data Structure
  • 資料結構自學筆記
  • 1 - Stack & Queue
    • 1.1 - Stack
    • 1.2 - Queue
    • 1.3 - Stack and Queue
  • 2 - Tree & Binary Tree
    • 2.1 - Tree
    • 2.2 - Binary Tree
    • 2.3 - Binary Tree Traversal
    • 2.4 - Binary Search Tree
    • 2.5 - Heap
    • 2.6 - Thread Binary Tree
    • 2.7 - Tree and Binary Tree Conversion
    • 2.8 Advanced Trees
      • 2.8.1 - Min-Max Heap
      • 2.8.2 - Deap
      • 2.8.3 - Symmetric Min-Max Heap
      • 2.8.4 - Extended Binary Tree
      • 2.8.5 - AVL Tree
      • 2.8.6 - M-Way Search Tree
      • 2.8.7 - B Tree
      • 2.8.8 - Red-Black Tree
      • 2.8.9 - Optimal Binary Search Tree
      • 2.8.10 - Splay Tree
      • 2.8.11 - Leftest Heap
      • 2.8.12 - Binomial Heap
  • 3 - Search & Sort
    • 3.1 - Searching
    • 3.2 - Elementary Sorting
      • 3.2.1 - Insertion Sort
      • 3.2.2 - Selection Sort
      • 3.2.3 - Bubble Sort
      • 3.2.4 - Shell Sort
    • 3.3 - Sophisticated Sorting
      • 3.3.1 - Quick Sort
      • 3.3.2 - Merge Sort
      • 3.3.3 - Heap Sort
      • 3.3.4 - Radix Sort
      • 3.3.5 - Bucket Sort
      • 3.3.6 - Counting Sort
    • 3.4 - Summary
  • 4 - Graph
    • 4.1 - Intro
    • 4.2 - Graph Traversal
    • 4.3 - Spanning Tree
      • 4.3.1 - Kruskal's algorithm
      • 4.3.2 - Prim's algorithm
      • 4.3.3 - Sollin's algorithm
    • 4.4 - Shortest Path Length
      • 4.4.1 - Dijkstra's algorithm
      • 4.4.2 - Bellman-Ford algorithm
      • 4.4.3 - Floyd-Warshall algorithm
    • 4.5 - AOV Network
    • 4.6 - AOE Network
    • 4.7 - Others
Powered by GitBook
On this page
  • 1. B Tree of order m
  • 2. 操作
  1. 2 - Tree & Binary Tree
  2. 2.8 Advanced Trees

2.8.7 - B Tree

Previous2.8.6 - M-Way Search TreeNext2.8.8 - Red-Black Tree

Last updated 6 years ago

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]≤node′s degree≤m[\frac{m}{2}]≤node's\ degree≤m[2m​]≤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

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

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

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

    1+2+2[m2]+2[m2]2+2[m2]3+...+2[m2]h−2  =1+2([m2]0+[m2]1+[m2]2+...+[m2]h−2)  =1+2([m2]h−1−1[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+2[2m​]+2[2m​]2+2[2m​]3+...+2[2m​]h−2  =1+2([2m​]0+[2m​]1+[2m​]2+...+[2m​]h−2)  =1+2([2m​]−1[2m​]h−1−1​)

  • 最少資料數

    1+2([m2]h−1−1[m2]−1)∗([m2]−1)=2[m2]h−1−11+2(\frac{[\frac{m}{2}]^{h-1}-1}{[\frac{m}{2}]-1})*([\frac{m}{2}]-1)\\=2[\frac{m}{2}]^{h-1}-11+2([2m​]−1[2m​]h−1−1​)∗([2m​]−1)=2[2m​]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