notebook/notes/data-structures/b-tree.md

6.2 KiB

title TARGET DECK FILE TAGS tags
B-Tree Obsidian::STEM data_structure::b-tree
b-tree
data_structure

Overview

A B-tree of order m is a tree that satisfies the following properties:

  • Every node has at most m children.
  • Every node, except for the root, has at least m / 2 children.
  • All leaves appear on the same level.
  • A node with k children contains k - 1 keys sorted in monotonically increasing order.

The above is a modification of Knuth's definition in his "Art of Computer Programming" that defines leaves of the tree more consistently with how I use the term elsewhere. It also pulls in concepts from CLRS (such as keys needing to be sorted within nodes).

%%ANKI Basic What hyperparameter is used to define a B-tree? Back: It's order, i.e. the maximum number of a children a node can have. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic In what direction do B-trees grow? Back: From bottom to top. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Consider B-tree of order m. What does m refer to? Back: The maximum number of children a node can have. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the maximum number of children a node in a B-tree have? Back: N/A. It depends on the tree's order. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the maximum number of children a node in a B-tree of order m can have? Back: m Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the minimum number of children a non-root node in a B-tree of order m can have? Back: \lceil m / 2 \rceil Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the maximum number of keys a node in a B-tree of order m can have? Back: m - 1 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the minimum number of keys a non-root node in a B-tree can have? Back: N/A. It depends on the tree's order. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What is the minimum number of keys a non-root node in a B-tree of order m can have? Back: \lceil m / 2 \rceil - 1 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic A node in a B-tree of order m has k keys. How many children does it have? Back: k + 1 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic A node in a B-tree of order m has k children. How many keys does it have? Back: k - 1 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic When does a B-tree gain height? Back: When the root node is split. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Consider a B-tree of order 7. How many children c can each non-root node have? Back: 4 \leq c \leq 7 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Consider a B-tree of order 7. How many children c can the root have? Back: 0 \leq c \leq 7 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Consider a B-tree of order 7. How many keys k can each non-root node have? Back: 3 \leq k < 7 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Consider a B-tree of order 7. How many keys k can the root have? Back: 0 \leq k < 7 Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic What instances exist of a B-tree of order 1? Back: Just the empty tree. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic Why can't we define a nonempty B-tree of order 1? Back: Each node can have at most 1 child, meaning each node contains 0 keys. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

%%ANKI Basic How are keys arranged within a B-tree's nodes? Back: In monotonically increasing order. Reference: Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).

END%%

Bibliography

  • Donald Ervin Knuth, Art of Computer Programming, 3: Sorting and Searching, 2. ed., 34. (Reading, Mass: Addison-Wesley, 1995).
  • Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).