public Object replaceElement(Position v, Object o) {
Object temp = ((BTNode) v).element();
((BTNode) v).setElement(o);
return temp;
}
public void swapElements(Position v, Position w) {
Object temp = w.element();
((BTNode) w).setElement(v.element());
((BTNode) v).setElement(temp);
}
public void expandExternal(Position v) {
if (isExternal(v)) {
((BTNode) v).setLeft(new BTNode(null,(BTNode) v, null, null));
((BTNode) v).setRight(new BTNode(null,(BTNode) v, null, null));
size += 2;
}
}
public void removeAboveExternal(Position v) {
if (isExternal(v)) {
BTNode p = (BTNode) parent(v);
BTNode s = (BTNode) sibling(v);
if (isRoot(p)) {
s.setParent(null);
root = s;
}
else {
BTNode g = (BTNode) parent(p);
if (p == leftChild(g))
g.setLeft(s);
else
g.setRight(s);
s.setParent(g);
}
size -= 2;
}
}