Project: TreeSet
Develop class TreeSet as a generic collection that stores nodes in a binary search tree data structure. Each node has a reference to data, a left binary search, and a right binary search tree. The type to be stored must be limited to types that implement the Comparable interface or any interface that extends Comparable.
publicclassTreeSet<E extends Comparable<E> {
The required method headings are provided below with their behavior listed as comments.
// Add element to this TreeSet and return true keeping this a TreeSet. If element is found
// to already exist, do not change this TreeSet, simply return false.
publicboolean insert(E element)
// The number of elements in this TreeSet, which should be 0 when first constructed.
publicint size()
// The longest path in this TreeSet beginning at the root.
// Note: An empty tree has a height of -1.
publicint height()
// Return one string that concatenates all elements in this TreeSet as they are visited
//inorder. Elements are separated by spaces like "1 4 9" in this TreeSet:
// 4
// / \
// 1 9
public String toStringInorder()
// Return one string that concatenates all elements in this TreeSet as they are visited
// pre order. Elements are separated by spaces like "4 1 9" in this TreeSet:
public String toStringPreorder()
// Return one string that concatenates all elements in this TreeSet as they are visited
// post order. Elements are separated by spaces like "1 9 4" in this TreeSet:
public String toStringPostorder()
// Return true is search equals an element in this TreeSet.
publicboolean contains(E search)
// Return an array that has capacity equal to this TreeSet's size with the
// minimum value at index 0 and the maximum value at index array length-1
public Object[] toArray()
// Return the element in this TreeSet that is greater than all other elements.
// If this TreeSet is empty, return null.
public E max()
// Return the number of leafs in this TreeSet. Note: An empty tree has 0 leafs.
publicint numberOfLeafs()
// Return the intersection of this TreeSet and the other TreeSet. Return a new
// TreeSet. Do not modify this TreeSet or the other TreeSet. Return a new
public TreeSet<E> intersection(TreeSet<E> other)
// Return true if two different TreeSet objects have the same exact structure. Each node
// must have the same number of nodes on every level, the same height, the same size, the
// same number of leaves, and the same number of internal nodes. Most importantlyeach
// corresponding node must have the same childerm (0, 1,or 2) in the same place. The
// data need NOT need be equals. Each of these 4 pairs of TreeSets have the sameStructure:
//
// M P | Lmn Rts | 5 55 | 3 999
// / \ / \ | / / | \ \ | / /
// B R F Q | Abc Lmn | 10 999 | 2 888
// \ \ \ \ | | / \ / \ | / /
// F Z J R | | 8 77 8 12 | 1 777
//
// Empty trees also have the same structure.
//
// All four pairs of these TreeSets do NOT have the sameStucture (do not consider the data)
//
//
// M M | Rts Rts | 5 5 | 3 999
// / \ / \ | / / | \ \ | / / \
// B R B Z | Lmn Abc | 10 12 | 2 888 1001
// \ \ \ / | / \ | / \ / | /
// F Z F R | Abc Lmn | 8 12 10 | 1
// | | / |
// | | 8 |
//
// Precondition: E is the same for both TreeSets
publicboolean sameStructure(TreeSet<E> other)
// If element equals an element in this TreeSet, remove it and return true. Return false
// whenever element is not found. In all cases, this TreeSet must remain a true TreeSet.
// Here is the algorithm discussed in section: BSTRemoveGeneric.pdf
publicboolean remove(E element)
Grading Criteria
100 pts for WebCat Problem Coverage and Code Coverage