k-1 = -∞, k0, …, ki, ki + 1 = +∞
bool search(root, v) if root = nil return false i = scan-keys(v) // root.k[i] ≤ v < root.k[i + 1] if root.k[i] = v return true return root.c[i + 1]
void insert(root, v) i = scan-keys(v) // ki ≤ v < ki+1 if root.k[i] = v return if (i = root.k.size() - 1) ∧ (i < m - 2) ∧ (root.c[i + 1] = nil) root.k[i + 1] = v else if root.c[i + 1] = nil root.c[i + 1] = new-root(v) else insert(root.c[i + 1], v)
find()
, add()
, and remove()
are
essentially those of the 2-3 tree.