public Node Insert(Node root, int x)
parent.left = new Node(x);
parent.right = new Node(x);
public bool Search(Node root, int x)
public void PrintOrder(Node root, int size, int order)
if (current.left == null)
while (pre.right != null && pre.right != current)
for (int i = 0; i < size; i++)
Console.Write(a[i] + " ");
for (int i = size - 1; i >= 0; i--)
Console.Write(a[i] + " ");
public static void Main()
Console.WriteLine("Enter your choice\n 1.Insert \n 2.Search \n 3.Ascending order \n 4.Descending order\n 5.Exit \n");
int choice = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("enter the value to insert");
int number = Convert.ToInt32(Console.ReadLine());
root = bstObj.Insert(root, number);
Console.WriteLine("Enter a number to search");
number = Convert.ToInt32(Console.ReadLine());
if (bstObj.Search(root, number))
Console.WriteLine("element is present");
Console.WriteLine("Element is not available");
Console.WriteLine("Ascending order");
bstObj.PrintOrder(root, size, 0);
Console.WriteLine("Descending Order");
bstObj.PrintOrder(root, size, 1);
Console.WriteLine("Exiting...");
System.Environment.Exit(0);
Console.WriteLine("\nEnter correct choice");