Ejemplo n.º 1
0
        private static BinaryTreeNode <int> Recursive(int[] data, int start, int end)
        {
            if (start > end)
            {
                return(null);
            }

            int mid = start + (end - start) / 2;

            BinaryTreeNode <int> root = new BinaryTreeNode <int>(mid);

            root.Left  = MinimalTree.Recursive(data, start, mid - 1);
            root.Right = MinimalTree.Recursive(data, mid + 1, end);

            return(root);
        }
Ejemplo n.º 2
0
        public void MinimalTreeTest()
        {
            for (int i = 0; i < 10; i++)
            {
                int minHeight = 0;
                for (int j = 0; j <= 20; j++)
                {
                    if (j == 1 << minHeight)
                    {
                        minHeight++;
                    }

                    int[] data = ArrayUtilities.CreateRandomArray(j, 0, 10);
                    BinaryTreeNode <int> root = MinimalTree.Recursive(data);
                    Assert.AreEqual(BinaryTreeUtilities.Height(root), minHeight);
                }
            }
        }
Ejemplo n.º 3
0
 private static BinaryTreeNode <int> Recursive(int[] data)
 {
     return(MinimalTree.Recursive(data, 0, data.Length - 1));
 }