I'm trying to implement a B-Tree according to the chapter "B-Trees" in "Introduction to Algorithms".
What I don't quite get is the "minimal degree". In the book it is stated that the degree is a number which expresses the lower/upper bound for the number of keys a node can hold. It it further says that:
- Every non-root node stores at least
t - 1
keys and hast
children. - Every node stores at most
2*t - 1
keys and has2*t
children.
So you get for t = 2:
t - 1
= 1 keys and t = 2 children2*t - 1
= 3 keys and 4 children
For t = 3
t - 1
= 2 keys and t = 3 children2*t - 1
= 5 keys and 6 children
Now here's the problem: It seems that the nodes in a B-Tree can only store an odd number of keys when they are full.
Why can't there be a node with, let's say at most 4 keys and 5 children? Does it have something to do with splitting the node?