public class BinarySearchTree< T extends Comparable<T>> {
Node root;
class Node {
T data;
Node left;
Node right;
public Node(T data) {
this.data = data;
}
}
public boolean isEmpty() {
return root == null;
}
public void insert(T value) {
if(isEmpty())
root = new Node(value);
else
insert(root, value);
}
private void insert(Node node, T value) {
if(value.compareTo(node.data) < 0) {
if(node.left == null)
node.left = new Node(value);
else
insert(node.left, value);
}
else {
if(node.right == null)
node.right = new Node(value);
else
insert(node.right, value);
}
}
}