static void Main(string[] args) { Console.WriteLine("Hello World!"); var bst = new BinarySearchTree <int>(); bst.Insert(10); Console.WriteLine("\nAfter Inserting 10"); bst.PrintInOrderRec(bst.Root); bst.Insert(9); Console.WriteLine("\nAfter Inserting 9"); bst.PrintInOrderRec(bst.Root); bst.Insert(11); Console.WriteLine("\nAfter Inserting 11"); bst.PrintInOrderRec(bst.Root); bst.Insert(3); Console.WriteLine("\nAfter Inserting 3"); bst.PrintInOrderRec(bst.Root); bst.Insert(18); Console.WriteLine("\nAfter Inserting 18"); bst.PrintInOrderRec(bst.Root); bst.Insert(6); Console.WriteLine("\nAfter Inserting 6"); bst.PrintInOrderRec(bst.Root); bst.Insert(15); Console.WriteLine("\nAfter Inserting 15"); bst.PrintInOrderRec(bst.Root); var delNode = bst.Delete_V2(bst.Root, 10); Console.WriteLine("\nAfter Deleting 10"); bst.PrintInOrderRec(bst.Root); var max = bst.FindMax(bst.Root); Console.WriteLine("\nAfter FindMax"); Console.WriteLine(max); var find18 = bst.Find(18); Console.WriteLine("\nAfter Find 18"); Console.WriteLine(find18.Data); var find20 = bst.Find(20); Console.WriteLine("\nAfter Find 20"); Console.WriteLine(find18); Console.WriteLine("\nInOrderTraverseStack"); bst.InOrderTraverseStack(bst.Root); Console.WriteLine("\nInOrderTraverse Morris"); bst.InOrderTraverseMorris(bst.Root); }