Exemple #1
0
        static void Main(string[] args)
        {
            //int T = Convert.ToInt32(Console.ReadLine());

            //for (int i = 1; i <= T; i++)
            //{
            //    int size = Convert.ToInt32(Console.ReadLine().Trim());

            //    string inputArr = Console.ReadLine().Trim();
            //    int[] arr = Array.ConvertAll(inputArr.Split(" "), int.Parse);
            //    int res = HashingProblems.FirstRepeatingElement(arr, size);
            //    Console.WriteLine(res);
            //}

            //int[] arr = new int[] { };
            //var res = SortingProblems.Merge3SortedArrays(arr1, arr2, arr3);
            //Print(res);

            TreeProblems t = new TreeProblems();

            int[] parent = { -1, 0, 0, 1, 1, 3, 5 };
            t.ConstructTreeFromParentArray(parent, parent.Length);


            Console.ReadKey();
        }
        public void TestSomething(int[] nums, bool expectedValue)
        {
            BinaryTreeNode root         = generateBinarySearchTree(nums);
            var            treeProblems = new TreeProblems();

            var actualResult = treeProblems.IsValidBST(root);

            Assert.Equal(expectedValue, actualResult);
        }
        public void TestDiameterOfBinaryTree(int[] nums, int expectedDiameter)
        {
            BinaryTreeNode root = generateBinarySearchTree(nums);

            var treeProblems = new TreeProblems();

            var actualDiameter = treeProblems.DiameterOfBinaryTree(root);

            Assert.Equal <int>(expectedDiameter, actualDiameter);
        }
        public void TestCountNodes(int[] nums, int expectedCount)
        {
            int?[] arr = nums.Cast <int?>().ToArray();

            var treeProblems = new TreeProblems();
            var root         = BinaryTreeNode.CreateBinaryTree(arr);

            var actualCount = treeProblems.CountNodes(root);

            Assert.Equal <int>(expectedCount, actualCount);
        }
        public void TestDelNodesParentAndChild()
        {
            var root      = BinaryTreeNode.CreateBinaryTree(new int?[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
            var to_delete = new int[] { 2, 5 };

            var expectedForest = BinaryTreeNode.CreateBinaryTreeForest(new int?[2][] { new int?[3] {
                                                                                           4, 8, 9
                                                                                       }, new int?[5] {
                                                                                           1, null, 3, 6, 7
                                                                                       } });

            var treeProblems = new TreeProblems();

            var actualForest = treeProblems.DelNodes(root, to_delete);

            Assert.Equal <int>(expectedForest.Count, actualForest.Count);
        }
        public void TestDelNodesEasy()
        {
            var root      = BinaryTreeNode.CreateBinaryTree(new int?[] { 1, 2, 3, 4, 5, 6, 7 });
            var to_delete = new int[] { 3, 5 };

            var expectedForest = BinaryTreeNode.CreateBinaryTreeForest(new int?[3][] { new int?[1] {
                                                                                           6
                                                                                       }, new int?[1] {
                                                                                           7
                                                                                       }, new int?[4] {
                                                                                           1, 2, null, 4
                                                                                       } });

            var treeProblems = new TreeProblems();

            var actualForest = treeProblems.DelNodes(root, to_delete);

            Assert.Equal <int>(expectedForest.Count, actualForest.Count);
        }