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; } }