示例#1
0
        public void TestTraverseLevelOrderWhenTreeIsEmptyShouldWriteNothing()
        {
            var tree = new IntBinarySearchTree();
            BinarySearchTreeTraversalHelper helper = new BinarySearchTreeTraversalHelper();
            StringBuilder builder = new StringBuilder();

            void WriteValue(int val)
            {
                builder.Append($"{val},");
            }

            helper.TraverseLevelOrder(tree, WriteValue);

            Assert.AreEqual("", builder.ToString());
        }
示例#2
0
        static void TestBinarySearchTree()
        {
            var tree = new IntBinarySearchTree();

            tree.Insert(7);
            tree.Insert(4);
            tree.Insert(9);
            tree.Insert(1);
            tree.Insert(6);
            tree.Insert(8);
            tree.Insert(10);

            GetNodesAtDistance(0);
            GetNodesAtDistance(-5);
            GetNodesAtDistance(1);
            GetNodesAtDistance(2);
            GetNodesAtDistance(3);
            GetNodesAtDistance(20);

            void GetNodesAtDistance(int distance)
            {
                Console.WriteLine($"============================================");
                Console.WriteLine($"Getting nodes values at distance {distance}");
                var values = tree.GetNodesAtDistance(distance);

                foreach (var item in values)
                {
                    Console.WriteLine(item);
                }
            }

            //Console.WriteLine($"{tree.Contains(8)}");
            //Console.WriteLine($"{tree.Contains(-20)}");
            //BinarySearchTreeTraversalHelper traversalHelper = new BinarySearchTreeTraversalHelper();

            //Console.WriteLine("Testing Traversing - InOrder Reversed method - using recursion");
            //traversalHelper.TraverseInOrderReversed(tree.Root, Console.WriteLine);
            //Console.WriteLine("Testing Traversing - PostOrder method - using recursion");
            //traversalHelper.TraversePostOrder(tree.Root, Console.WriteLine);

            //Console.WriteLine($"Tree Height: {tree.Height()}");
            //Console.WriteLine($"Empty Tree Height: {new BinarySearchTree<int>().Height()}");

            //Console.WriteLine($"Tree Min Val - Tree processed As Normal Binary Tree: {tree.CalculateMinAsBinaryTree()}");
            //Console.WriteLine($"Tree Min Val - Tree processed As Binary Search Tree: {tree.CalculateMinAsBinarySearchTree()}");
        }
示例#3
0
        public void TestTraverseLevelOrderWhenTreeHasData()
        {
            var tree = new IntBinarySearchTree();

            tree.Insert(7);
            tree.Insert(4);
            tree.Insert(9);
            tree.Insert(1);
            tree.Insert(6);
            tree.Insert(8);
            tree.Insert(10);

            BinarySearchTreeTraversalHelper helper = new BinarySearchTreeTraversalHelper();
            StringBuilder builder = new StringBuilder();

            void WriteValue(int val)
            {
                builder.Append($"{val},");
            }

            helper.TraverseLevelOrder(tree, WriteValue);

            Assert.AreEqual("7,4,9,1,6,8,10,", builder.ToString());
        }