Exemplo n.º 1
0
 public BST(int value)
 {
     this.value = value;
     left       = null;
     right      = null;
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public static int FindClosestValueInBst(BST tree, int target)
 {
     // Write your code here.
     return(FindClosestValue(tree, target, tree.value));
 }
Exemplo n.º 4
0
 public static bool ValidateBst(BST tree)
 {
     // Write your code here.
     return(ValidateBstHelper(tree, Int32.MinValue, Int32.MaxValue));
 }
Exemplo n.º 5
0
        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();
        }