class IntSet13 { // Destructive Set class, sets stored as ordered trees private Cell tree; public void delete(int n) { Cell ptr=tree; if(tree.left==null&&tree.right==null) { if(tree.item==n) tree=null; return; } while(ptr!=null&&ptr.item!=n) if(nptr.item) { if(ptr.right!=null&&ptr.right.item==n&& ptr.right.left==null&&ptr.right.right==null) ptr.right=null; ptr=ptr.right; } if(ptr!=null) if(ptr.left==null) { ptr.item=ptr.right.item; ptr.left=ptr.right.left; ptr.right=ptr.right.right; } else if(ptr.right==null) { ptr.item=ptr.left.item; ptr.right=ptr.left.right; ptr.left=ptr.left.left; } else if(ptr.left.right==null) { ptr.item=ptr.left.item; ptr.left=ptr.left.left; } else { Cell ptr1=ptr.left; while(ptr1.right.right!=null) ptr1=ptr1.right; ptr.item=ptr1.right.item; ptr1.right=ptr1.right.left; } } public void add(int n) { if(tree==null) tree = new Cell(n,null,null); else { Cell ptr=tree; while(ptr.item!=n) if(nptr.item) { if(ptr.right==null) ptr.right = new Cell(n,null,null); ptr = ptr.right; } } } public boolean member(int n) { Cell ptr=tree; while(ptr!=null&&ptr.item!=n) if(n