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.