public BST(int value) { this.value = value; left = null; right = null; }
public static BST CalculateminHeightBstHelper(List <int> array, int startIndex, int endIndex, BST bst) { if (endIndex < startIndex) { return(null); } int midIndex = (startIndex + endIndex) / 2; int addValue = array[midIndex]; if (bst == null) { bst = new BST(addValue); } else { bst.insert(addValue); } CalculateminHeightBstHelper(array, startIndex, midIndex - 1, bst); CalculateminHeightBstHelper(array, midIndex + 1, endIndex, bst); return(bst); }
public static int FindClosestValueInBst(BST tree, int target) { // Write your code here. return(FindClosestValue(tree, target, tree.value)); }
public static bool ValidateBst(BST tree) { // Write your code here. return(ValidateBstHelper(tree, Int32.MinValue, Int32.MaxValue)); }
static void Main(string[] args) { // travels binary tree BinaryTreeNode tmpNode1 = new BinaryTreeNode(1); BinaryTreeNode tmpNode2 = new BinaryTreeNode(2); BinaryTreeNode tmpNode3 = new BinaryTreeNode(3); BinaryTreeNode tmpNode4 = new BinaryTreeNode(4); BinaryTreeNode tmpNode5 = new BinaryTreeNode(5); BinaryTreeNode tmpNode6 = new BinaryTreeNode(6); BinaryTreeNode tmpNode7 = new BinaryTreeNode(7); BinaryTree bTree = new BinaryTree(); bTree.SetRoot(tmpNode1); bTree.Insert(tmpNode1, tmpNode2, tmpNode3); bTree.Insert(tmpNode2, tmpNode4, tmpNode5); bTree.Insert(tmpNode3, tmpNode6, tmpNode7); bTree.TravelsByPre(); Console.WriteLine(); bTree.TravelsByIn(); Console.WriteLine(); bTree.TravelsByPost(); Console.WriteLine(); // test heap by link HeapByLinked myHeapByLinked = new HeapByLinked(); myHeapByLinked.Insert(0); myHeapByLinked.Insert(1); myHeapByLinked.Insert(2); myHeapByLinked.Insert(3); myHeapByLinked.Insert(4); myHeapByLinked.Insert(5); myHeapByLinked.Insert(6); myHeapByLinked.TravelsByPre(); Console.WriteLine(); Console.WriteLine(myHeapByLinked.Delete()); myHeapByLinked.TravelsByPre(); Console.WriteLine(); // test heap by array HeapByArray myHeapByArray = new HeapByArray(); myHeapByArray.Insert(0); myHeapByArray.Insert(1); myHeapByArray.Insert(2); myHeapByArray.Insert(3); myHeapByArray.Insert(4); myHeapByArray.Insert(5); myHeapByArray.Insert(6); myHeapByArray.Print(); Console.WriteLine(myHeapByArray.Delete()); myHeapByArray.Print(); //Binary Search Tree Console.WriteLine("-----------------"); Console.WriteLine("It's BST Test!!!"); BST myBST = new BST(); myBST.Insert(50); myBST.Insert(20); myBST.Insert(70); myBST.Insert(30); myBST.Insert(10); myBST.Insert(60); myBST.Insert(80); myBST.Insert(5); myBST.Insert(15); myBST.Insert(25); myBST.Insert(35); myBST.Insert(55); myBST.Insert(65); myBST.Insert(75); myBST.Insert(85); myBST.Insert(90); myBST.Insert(3); myBST.Insert(8); myBST.TravelsByIn(); Console.WriteLine(myBST.Search(4)); Console.WriteLine(myBST.Search(5)); myBST.Delete(8); myBST.TravelsByIn(); myBST.Delete(20); myBST.TravelsByIn(); myBST.Delete(4); myBST.TravelsByIn(); //Binary Search Tree derived by Binary Tree Console.WriteLine("-----------------"); Console.WriteLine("It's BST Test!!!"); BSTDerivedBT myBSTDerived = new BSTDerivedBT(); myBSTDerived.Insert(50); myBSTDerived.Insert(20); myBSTDerived.Insert(70); myBSTDerived.Insert(30); myBSTDerived.Insert(10); myBSTDerived.Insert(60); myBSTDerived.Insert(80); myBSTDerived.Insert(5); myBSTDerived.Insert(15); myBSTDerived.Insert(25); myBSTDerived.Insert(35); myBSTDerived.Insert(55); myBSTDerived.Insert(65); myBSTDerived.Insert(75); myBSTDerived.Insert(85); myBSTDerived.Insert(90); myBSTDerived.Insert(3); myBSTDerived.Insert(8); myBSTDerived.TravelsByIn(); Console.WriteLine(myBSTDerived.Search(4)); Console.WriteLine(myBSTDerived.Search(5)); myBSTDerived.Delete(8); myBSTDerived.TravelsByIn(); myBSTDerived.Delete(20); myBSTDerived.TravelsByIn(); myBSTDerived.Delete(4); myBSTDerived.TravelsByIn(); }