static void Main(string[] args) { #region Binary Search //Let us create following BST // 50 // / \ // 30 70 // / \ / \ // 20 40 60 80 MyBinaryTree bTree = new MyBinaryTree(); Node node = null; node = bTree.AddData(ref node, 50); node = bTree.AddData(ref node, 30); node = bTree.AddData(ref node, 70); node = bTree.AddData(ref node, 20); node = bTree.AddData(ref node, 40); node = bTree.AddData(ref node, 60); node = bTree.AddData(ref node, 80); int height = bTree.CalulcateHeight(node); Node node1 = bTree.Search(node, 20); MyBinaryTree bTree2 = new MyBinaryTree(); Node node2 = null; bTree2.AddData(ref node2, 1); bTree2.AddData(ref node2, 2); bTree2.AddData(ref node2, 3); bTree2.AddData(ref node2, 4); bTree2.AddData(ref node2, 5); bTree2.AddData(ref node2, 6); bTree2.AddData(ref node2, 7); height = bTree.CalulcateHeight(node2); node1 = bTree.Search(node2, 5); #endregion #region BinarySearch on Array int[] values = new int[1000]; for (int i = 0; i < 1000; i++) { values[i] = i; } //Array.BinarySearch(values, 665); int g = BinarySearch.MyBSearch(values, 0, 999, 665); #endregion #region Sorting Algorithm int[] arr = new int[10] { 100, 50, 20, 40, 10, 60, 80, 70, 90, 30 }; //SortingAlgorithms.SelectionSort(ref arr); //SortingAlgorithms.InsertionSort(ref arr); //SortingAlgorithms.HeapSort(ref arr); SortingAlgorithms.MergeSort(ref arr, 0, arr.Length - 1); for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); } #endregion #region Searching Algorithm int value = SearchingAlgorithms.BinarySearch(arr, 20); #endregion }