Question: complete this large binary tree please: import java.util.Iterator; import com.google.gson. * ; / / for cloning import com.google.gson.reflect.TypeToken; / / for cloning import java.lang.reflect.Type; /

complete this large binary tree please:
import java.util.Iterator;
import com.google.gson.*; // for cloning
import com.google.gson.reflect.TypeToken; // for cloning
import java.lang.reflect.Type; // for cloning
public class BinarySearchTree> extends BinaryTree implements Iterable {
Node deepCopyNode(Node copyMe){
if (null == copyMe){
return null;
}
Node rv = new Node();
Gson gson = new Gson();
Type typeOfT = new TypeToken(){}.getType();
rv.data = gson.fromJson(gson.toJson(copyMe.data), typeOfT);
rv.leftChild = deepCopyNode(copyMe.leftChild);
if (null != rv.leftChild){
rv.leftChild.parent = rv;
}
rv.rightChild = deepCopyNode(copyMe.rightChild);
if (null != rv.rightChild){
rv.rightChild.parent = rv;
}
return rv;
}
public BinarySearchTree(BinarySearchTree copyMe
{ verbose = copyMe.verbose;
if (verbose){
System.err.println("Copying this tree: "+ copyMe);
}
root = deepCopyNode(copyMe.root);
}
public BinarySearchTree(){
root = null;
verbose = false;
}
public void clone(BinarySearchTree copyMe){
root = deepCopyNode(copyMe.root);
}
public Iterator iterator(){
Iterator iterRv = new Iterator(){
@Override
public boolean hasNext(){
return false;
}// hasNext()
@Override
public T next(){
return null;
}// next()
// iterator remove not supported
@Override
public void remove(){
throw new UnsupportedOperationException();
}// remove()
}; // anon inner class iterator
return iterRv;
}
public boolean equals(BinarySearchTree other){
if (verbose){
System.err.println("Comparing:\tTree1:
"+ toString());
System.err.println("With:\tTree2:
"+ other);
}
// if they are the same object, return true. Nothing to do
if (this == other){
return true;
}
return false;
}
public int hashCode(){
int rv =0;
Iterator meIter = iterator();
while (meIter.hasNext()){
T meValue = meIter.next();
// no exception on overflow, so this is fine
rv += meValue.hashCode();
// We can add a positional element (order) but not a structural one
}
return rv;
}
public boolean insert(T addMe){
return false;
}
public boolean remove(T removeMe){
return false;
}
public boolean search(T findMe){
Node current = root;
while (null != current && !current.data.equals(findMe)){
current =(findMe.compareTo(current.data)<0)? current.leftChild : current.rightChild;
}
return null != current;
}
}
hi, can you please implement all the funtions such as insert and delete?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Accounting Questions!