### Best writers. Best papers. Let professionals take care of your academic papers

Order a similar paper and get 15% discount on your first order with us
Use the following coupon "FIRST15"
ORDER NOW

# Binary search tree in java

``I want to add a few more practical methods to a binary search tree (and practice a bit of recursion in the process). down below you will find the class BinarySearchTree with the private inner class BinaryNode.Some methods are already specified. The Improved Methodsmay not be changed.``

i want to add following methods

``int maximumRecursive()Finds the maximum in the entire binary search tree (using a recursive helper method) and returns it. If the tree is empty, ajava.util.NoSuchElementException is thrown out``

int maximumIterative() : Finds the maximum in the binary search tree iteratively. If the tree is empty, a java.util.NoSuchElementException is thrown out

int height() : Calculates the height of the entire binary search tree. A tree without elements has height 0, a tree with exactly one element has height 1

int sum() : Calculates the sum of all numbers in the binary search tree. For an empty search tree the result should be 0

``String reverseOrder() :Returns a string representation of the tree with all elements sorted in descending order. The string should – similar to the return of toString – have the following form have: 12, 8, 2, 0, -1, .``

The code

public class BinarySearchTree {

private class BinaryNode {
private int element;
private BinaryNode left;
private BinaryNode right;

private BinaryNode(int element) {
this.element = element;
}
}

private BinaryNode root;

public void insert(int newNumber) {
// special case: empty tree
if (root == null) {
root = new BinaryNode(newNumber);
return;
}

BinaryNode parent = null;
BinaryNode child = root;
while (child != null) {
parent = child;
if (newNumber == child.element) {
return;
} else if (newNumber < child.element) {
child = child.left;
} else {
child = child.right;
}
}

if (newNumber < parent.element) {
parent.left = new BinaryNode(newNumber);
} else {
parent.right = new BinaryNode(newNumber);
}
}

}