The pseudo-code for MWST delete is
root delete(root, v)
i = scan-keys(root, v)
if root.k[i] = v
if root.c[i] ≠ nil
root.c[i], root.k[i] = pull-max-key(root.c[i])
else if root.c[i + 1] ≠ nil
root.[c + 1], root.k[i] = pull-min-key(root.c[i + 1])
else
remove-key(root, i)
if root.k.empty()
root = nil
return root
else // root.k[i] ≠ v
if root.c[i + 1] = nil
return root
return delete(root.c[i + 1], v)
The definitions of pull-max-key(), pull-min-key(), and remove-key()
are left as an exercise (and this time I mean it).
This page last modified on 24 January 2006.