Question & Answer: BinaryTreeMainProgram.java: public class BinaryTreeMainProgram { public static void main(String[] args) {…..

JAVA PLZ

In the class over the last couple of days, have talked about how to build a binary search tree. We dont have time to write an entire one, but we can take one that works and add some functionality to it. The starter Files. BinaryTreeMainProgram,java My Binary Tree java This is a functioning Binary Tree, but we are missing a couple of important functions. Your job is to implement them. The missing functions are: contains value o This function should search the tree to determine if the value is or is not present. It should return a boolean value. get Min o This should return the smallest value in the tree. remove(value) o This should remove a value from the tree and move the tree as necessary Size o This should find the number of elements in the tree. All functions should be recursive and work correctly. You are welcome to look at the other methods and see how they are implemented to help you out.

Don't use plagiarized sources. Get Your Custom Essay on
Question & Answer: BinaryTreeMainProgram.java: public class BinaryTreeMainProgram { public static void main(String[] args) {…..
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS $13/PAGE
Order Essay

BinaryTreeMainProgram.java:

public class BinaryTreeMainProgram
{
public static void main(String[] args)
{

MyBinaryTree<Integer> myTree = new MyBinaryTree<Integer>();
myTree.add(12);
myTree.add(10);
myTree.add(5);
myTree.add(9);
myTree.add(11);
myTree.add(3);
myTree.add(12);
myTree.add(13);
myTree.add(14);
myTree.add(15);

System.out.print(“The tree contains : “);
System.out.println(myTree) ;

System.out.println();
System.out.println(“The tree looks like : “);
myTree.printSideways();
// New Code Part 1
System.out.println(“******* New Code Part 1 *************”);
System.out.print(“Does the tree contian 9? : “);
System.out.println(myTree.contains(9) );

System.out.print(“Does the tree contian 20? : “);
System.out.println(myTree.contains(20) );

// New Code Part 2
System.out.println(“******* New Code Part 2 *************”);
System.out.print(“The minimum value is ? : “);
System.out.println(myTree.getMin() );

// New Code Part 3
System.out.println(“******* New Code Part 3 *************”);
System.out.print(“Removing : “);
myTree.remove(13);
System.out.println(myTree);
System.out.println(“The tree looks like : “);
myTree.printSideways();

// New Code Part 4
System.out.println(“******* New Code Part 4 *************”);
System.out.print(“The size of the tree is : ” + myTree.size() );

}
}

MyBinaryTree.java:

import java.util.NoSuchElementException;

/****************************************************
* Main Class MyBinaryTree
****************************************************/

public class MyBinaryTree<E extends Comparable<E> >
{

/****************************************************
* Helper Class TreeNode
* Note that this is a class inside the tree
****************************************************/
private class TreeNode<E>
{
public E payload;
public TreeNode<E> left;
public TreeNode<E> right;

public TreeNode (E data)
{
payload = data;
}
}

// Root of the Main tree
private TreeNode<E> root;

/************************************
* Constructor (Default)
************************************/

public MyBinaryTree()
{
root = null;
}

/*****************************************************
* toString Method (starter method)
*****************************************************/

public String toString()
{
if (root == null)
{
return “”;
}

return toString(root);
}

/*****************************************************
* toString Method (recursive method)
*****************************************************/
private String toString(TreeNode<E> tempRoot)
{
if (tempRoot == null) return “”;

return toString(tempRoot.left) + ” ”
+ tempRoot.payload.toString() + ” ”
+ toString(tempRoot.right);

}
/*****************************************************
* printSideways Method (starter method)
***************************************************/
public void printSideways()
{
if (root == null)
{
System.out.println(“Null Tree”);
return;
}
printSideways(root,””);
}
/*****************************************************
* printSideways Method (recursive method)
***************************************************/

private void printSideways(TreeNode<E> tempRoot, String indent)
{
if (tempRoot == null) return;
printSideways(tempRoot.right,” “+indent);
System.out.println(indent + tempRoot.payload.toString() );
printSideways(tempRoot.left,” “+indent);
}

/*****************************************************
* add Method (starter method)
***************************************************/
public void add(E data)
{
root = add(root, data);
}

/*****************************************************
* printSideways Method (recursive method)
***************************************************/

private TreeNode<E> add(TreeNode<E> tempRoot, E data)
{
if (tempRoot == null)
{
TreeNode<E> temp = new TreeNode<E>(data);
return temp;
}

if (tempRoot.payload.compareTo(data) > 0)
{
tempRoot.left = add(tempRoot.left,data);
}
if (tempRoot.payload.compareTo(data) < 0)
{
tempRoot.right = add(tempRoot.right,data);
}
return tempRoot;
}
/*****************************************************
* contains Method (starter method)
***************************************************/
public boolean contains(E lookFor)
{
// Need to implement this.
System.err.println(“NOT IMPLEMENTED”);
return false;
}

/*****************************************************
* contains Method (recursive method)
***************************************************/

public boolean contains(E lookFor, TreeNode<E> temproot)
{
// need this to help with above
return false;
}

/*****************************************************
* getMin Method (starter method)
***************************************************/
public E getMin()
{
// Need to implement this.
System.err.println(“NOT IMPLEMENTED”);
return null;
}

/*****************************************************
* remove Method (recursive method)
***************************************************/

public E getMin(TreeNode<E> temproot)
{
// need this to help with above
return null;
}

/*****************************************************
* remove Method (starter method)
***************************************************/
public void remove(E lookFor)
{
// Need to implement this.
System.err.println(“NOT IMPLEMENTED”);
}

/*****************************************************
* remove Method (recursive method)
***************************************************/

public void remove(E lookFor, TreeNode<E> temproot)
{
// need this to help with above
}

/*****************************************************
* size Method (starter method)
***************************************************/
public int size()
{
// Need to implement this.
System.err.println(“NOT IMPLEMENTED”);
return 0;
}

/*****************************************************
* size Method (recursive method)
***************************************************/

public int size(TreeNode<E> temproot)
{
// need this to help with above
return 0;
}

}

Show transcribed image text

Expert Answer

 import java.util.NoSuchElementException;

/****************************************************

* Main Class MyBinaryTree

****************************************************/

public class MyBinaryTree<E extends Comparable<E> >

{

/****************************************************

* Helper Class TreeNode

* Note that this is a class inside the tree

****************************************************/

private class TreeNode<E>

{

public E payload;

public TreeNode<E> left;

public TreeNode<E> right;

 

public TreeNode (E data)

{

payload = data;

}

}

// Root of the Main tree

private TreeNode<E> root;

 

/************************************

* Constructor (Default)

************************************/

public MyBinaryTree()

{

root = null;

}

 

/*****************************************************

* toString Method (starter method)

*****************************************************/

public String toString()

{

if (root == null)

{

return “”;

}

 

return toString(root);

}

/*****************************************************

* toString Method (recursive method)

*****************************************************/

private String toString(TreeNode<E> tempRoot)

{

if (tempRoot == null) return “”;

return toString(tempRoot.left) + ” ”

+ tempRoot.payload.toString() + ” ”

+ toString(tempRoot.right);

 

 

}

/*****************************************************

* printSideways Method (starter method)

***************************************************/

public void printSideways()

{

if (root == null)

{

System.out.println(“Null Tree”);

return;

}

printSideways(root,””);

}

/*****************************************************

* printSideways Method (recursive method)

***************************************************/

private void printSideways(TreeNode<E> tempRoot, String indent)

{

if (tempRoot == null) return;

printSideways(tempRoot.right,” “+indent);

System.out.println(indent + tempRoot.payload.toString() );

printSideways(tempRoot.left,” “+indent);

}

 

 

 

/*****************************************************

* add Method (starter method)

***************************************************/

public void add(E data)

{

root = add(root, data);

}

 

/*****************************************************

* printSideways Method (recursive method)

***************************************************/

 

private TreeNode<E> add(TreeNode<E> tempRoot, E data)

{

if (tempRoot == null)

{

TreeNode<E> temp = new TreeNode<E>(data);

return temp;

}

 

if (tempRoot.payload.compareTo(data) > 0)

{

tempRoot.left = add(tempRoot.left,data);

}

if (tempRoot.payload.compareTo(data) < 0)

{

tempRoot.right = add(tempRoot.right,data);

}

return tempRoot;

}

/*****************************************************

* contains Method (starter method)

   ***************************************************/

public boolean contains(E lookFor)

{

// Need to implement this.

return contains(lookFor,root);

}

/*****************************************************

   * contains Method (recursive method)

   ***************************************************/

public boolean contains(E lookFor, TreeNode<E> temproot)

{

// need this to help with above

      if (temproot != null) {

           if (temproot.payload.equals(lookFor)) {

               return true;

           } else

               return contains(lookFor,temproot.left) || contains(lookFor,temproot.right);

          

          

          

          

       }

      return false;

  

  

}

/*****************************************************

   * getMin Method (starter method)

   ***************************************************/

public E getMin()

{

// Need to implement this.

  

return getMin(root);

}

/*****************************************************

   * remove Method (recursive method)

   ***************************************************/

@SuppressWarnings(“unchecked”)

public E getMin(TreeNode<E> temproot)

{

      if (null == temproot)

           return (E)new Integer(Integer.MAX_VALUE);

       E data = temproot.payload;

       E left = getMin(temproot.left);

       E right = getMin(temproot.right);

      

      

       Integer i = new Integer(Math.min((int) data, Math.min((int) left, (int) right)));

       return (E) i;

}

/*****************************************************

* remove Method (starter method)

***************************************************/

public void remove(E lookFor)

{

// Need to implement this.

System.err.println(“NOT IMPLEMENTED”);

}

/*****************************************************

* remove Method (recursive method)

***************************************************/

public void remove(E lookFor, TreeNode<E> temproot)

{

// need this to help with above

 

 

 

}

  

/*****************************************************

   * size Method (starter method)

   ***************************************************/

public int size()

{

// Need to implement this.

return size(root);

}

/*****************************************************

* size Method (recursive method)

***************************************************/

public int size(TreeNode<E> temproot)

{

// need this to help with above

      if (temproot == null)

           return 0;

       else

           return 1 + size(temproot.left) + size(temproot.right);

}

}

======================================================
I have implemented how much I could do in given time

Question & Answer: BinaryTreeMainProgram.java: public class BinaryTreeMainProgram { public static void main(String[] args) {..... 1

Still stressed from student homework?
Get quality assistance from academic writers!