As a B+ tree, we'd get 511 keys per page, assuming 8-byte pointers. (4088 / 8 = 511).struct DATA { int ID; // the key char Name[32]; struct { double x; double y; double z; } Position; double NFA[128]; int DFA[64]; };
This example shows a B+ tree of order 4 (order is same as branching factor). In other words, a 2-3-4 tree.
Adding 3588 to the empty tree:
Adding 2820:
Adding 4606: (The root node is now full.)
Adding a new node (any value) now causes the root to split:
Adding 1900:
Adding 1558:
Adding 8280:
Adding 1067 causes the leaf to split:
Adding 1067:
Adding 2250:
Adding 7284 causes the right-most leaf to split (root is now full):
Adding 7284:
Adding any new node causes the root to split:
Adding 7809 causes the right-most leaf to become full:
Adding 7660 causes the right-most node to split:
Adding 6816 causes an internal node to split:
Adding 6816:
Some implementations link the leaves together for easy in-order traversal. (Range searches)