static void Main(string[] args) { Console.WriteLine("Binary Search Tree\n"); BinaryTree binaryTree = new BinaryTree(); binaryTree.Insert(75); binaryTree.Insert(57); binaryTree.Insert(90); binaryTree.Insert(32); binaryTree.Insert(7); binaryTree.Insert(44); binaryTree.Insert(60); binaryTree.Insert(86); binaryTree.Insert(93); binaryTree.Insert(99); binaryTree.Insert(100); Console.WriteLine("---------------------------------"); binaryTree.Print(); Console.WriteLine("--------------find-------------"); var node = binaryTree.FindRecursive(60); Console.WriteLine(node.Data); Console.WriteLine("---------------------------------"); Console.ReadLine(); //Console.WriteLine("In Order Traversal (Left->Root->Right)"); //binaryTree.InOrderTraversal(); //Console.WriteLine("\nPre Order Traversal (Root->Left->Right)"); //binaryTree.PreorderTraversal(); //Console.WriteLine("\nPost Order Traversal (Left->Right->Root)"); //binaryTree.PostorderTraversal(); //Console.WriteLine("\nFind 99"); //var node = binaryTree.Find(99); //Console.WriteLine(node.Data); //Console.WriteLine("Find Recursively 99"); //var nodeR = binaryTree.FindRecursive(99); //Console.WriteLine(nodeR.Data); //Console.WriteLine("Delete a Leaf Node (44)"); //binaryTree.Remove(44); //Console.WriteLine("Delete a Node with one child (93)"); //binaryTree.Remove(93); //Console.WriteLine("Delete a Node with two child nodes (75)"); //binaryTree.Remove(75); //Console.WriteLine("SoftDelete a Node with one child (93)"); //binaryTree.SoftDelete(93); Console.WriteLine("Get Smallest node"); Console.WriteLine(binaryTree.Smallest()); Console.WriteLine("Get Largest node"); Console.WriteLine(binaryTree.Largest()); Console.WriteLine("Get the number of leaf nodes"); Console.WriteLine(binaryTree.NumberOfLeafNodes()); Console.WriteLine("Get the height of the tree"); Console.WriteLine(binaryTree.Height()); //Check if the binary tree is balanced.A balanced tree occurs when the height of two subtrees of any node do not differe more than 1. bool balanced = binaryTree.IsBalanced(); }