class BinarySearchTree
{
Node root;
class Node
{
Node left;
Node right;
int value;
Node(int value)
{
this.value = value;
}
}
BinarySearchTree()
{
root = null;
}
public boolean insert(int value)
{
Node newNode = new Node(value);
if(root == null)
{
root = newNode;
return true;
}
Node temp = root;
while(true)
{
if(newNode.value == temp.value)
{
return false;
}
if(newNode.value < temp.value)
{
if(temp.left == null)
{
temp.left = newNode;
return true;
}
temp = temp.left;
}
else if(newNode.value > temp.value)
{
if(temp.right == null)
{
temp.right = newNode;
}
temp = temp.right;
}
}
}
public boolean contains(int value)
{
if(root == null)
{
return false;
}
Node temp = root;
while(temp!=null)
{
if(value < temp.value)
{
temp=temp.left;
}
else if(value > temp.value)
{
temp = temp.right;
}
else
{
return true;
}
}
return false;
}
}
class Main {
public static void main(String[] args) {
BinarySearchTree myBST = new BinarySearchTree();
myBST.insert(40);
myBST.insert(20);
myBST.insert(10);
myBST.insert(30);
System.out.println(myBST.contains(11));
}
}