public class VectorCompleteBinaryTree implements CompleteBinaryTree { protected Vector T; // vector of elements stored in the tree /** Nested class for a vector-based complete binary tree node. */ protected static class VectorNode implements Position { Object element; // element stored at this position int index; // index of this position in the vector public VectorNode(Object elt, int i) { element = elt; index = i; } public Object element() { return element; } public int index() { return index; } public Object setElement(Object elt) { Object temp = element; element = elt; return temp; } } /** default constructor */ public VectorCompleteBinaryTree() { T = new ArrayVector(); T.insertAtRank(0,null); // the location at rank 0 is deliberately empty } /** Returns the number of (internal and external) nodes. */ public int size() { return T.size()-1; } /** Returns whether the tree is empty. */ public boolean isEmpty() { return (size()==0); }