Пример #1
0
        public void Can_Perform_PreOrder_Traversal_And_Return_List()
        {
            KAryTree <int> testTree = PopulateTestTree();
            List <int>     actual   = testTree.PreOrder();
            List <int>     expected = new List <int>()
            {
                3, 4, 7, 13, 30, 5, 10, 15, 3, 8, 6
            };

            Assert.Equal(expected, actual);
        }
Пример #2
0
        public void Can_Populate_A_Fizz_Buzz_Tree_And_Sort_Breadth_First()
        {
            KAryTree <int> testTree = PopulateTestTree();
            List <int>     actual   = testTree.BreadthFirst();
            List <int>     expected = new List <int>()
            {
                3, 4, 5, 15, 7, 13, 30, 10, 3, 8, 6
            };

            Assert.Equal(expected, actual);
        }
Пример #3
0
        public KAryTree <string> FizzBuzzer(KAryTree <int> inputTree)
        {
            KAryTree <string> outputTree = new KAryTree <string>(3);

            KNode <string> outputRoot = new KNode <string>();

            outputTree.Root = outputRoot;
            KNode <int> inputRoot = inputTree.Root;

            Traversal(inputRoot, outputRoot);

            return(outputTree);
        }
Пример #4
0
        public void Can_Fizz_Buzz()
        {
            KAryTree <int>    testTree       = MakeFizzTree();
            FizzBuzzTree      fizzbuzz       = new FizzBuzzTree();
            KAryTree <string> fizzBuzzedTree = fizzbuzz.FizzBuzzer(testTree);
            List <string>     actual         = fizzBuzzedTree.PreOrder();
            List <string>     expected       = new List <string>()
            {
                "Fizz", "4", "7", "13", "Fizzbuzz", "Buzz", "Buzz", "Fizzbuzz", "Fizz", "8", "Fizz"
            };

            Assert.Equal(expected, actual);
            //{ 3, 4, 7, 13, 30, 5, 10, 15, 3, 8, 6 }
        }
Пример #5
0
        /// <summary>
        /// Helper method to build a tree to run fizz buzz on
        /// </summary>
        /// <returns></returns>
        private KAryTree <int> MakeFizzTree()
        {
            // last leaves
            KNode <int> n1 = new KNode <int>(7);
            KNode <int> n2 = new KNode <int>(13);
            KNode <int> n3 = new KNode <int>(30);
            KNode <int> n4 = new KNode <int>(10);
            KNode <int> n5 = new KNode <int>(3);
            KNode <int> n6 = new KNode <int>(8);
            KNode <int> n7 = new KNode <int>(6);

            // middle tier
            List <KNode <int> > children = new List <KNode <int> >()
            {
                n1, n2, n3
            };
            KNode <int> n8 = new KNode <int>(4, children);

            children = new List <KNode <int> >()
            {
                n4
            };
            KNode <int> n9 = new KNode <int>(5, children);

            children = new List <KNode <int> >()
            {
                n5, n6, n7
            };
            KNode <int> n10 = new KNode <int>(15, children);

            //root
            children = new List <KNode <int> >()
            {
                n8, n9, n10
            };
            KNode <int> n11 = new KNode <int>(3, children);

            KAryTree <int> newTree = new KAryTree <int>(3)
            {
                Root = n11
            };

            return(newTree);
        }
Пример #6
0
        static void TreeTest()
        {
            /*
             * BinarySearchTree<int> newTree = new BinarySearchTree<int>();
             * newTree.Add(newTree.Root, 9);
             * newTree.Add(newTree.Root, 4);
             * newTree.Add(newTree.Root, 17);
             * newTree.Add(newTree.Root, 3);
             * newTree.Add(newTree.Root, 6);
             * newTree.Add(newTree.Root, 22);
             * newTree.Add(newTree.Root, 5);
             * newTree.Add(newTree.Root, 7);
             * newTree.Add(newTree.Root, 20);
             *
             * List<int> result = newTree.BreadthFirst();
             * foreach (int value in result)
             *  Console.WriteLine($"{value} -> ");
             *
             * BinarySearchTree<int> test = new BinarySearchTree<int>();
             */
            // last leaves
            KNode <int> n1 = new KNode <int>(7);
            KNode <int> n2 = new KNode <int>(13);
            KNode <int> n3 = new KNode <int>(30);
            KNode <int> n4 = new KNode <int>(10);
            KNode <int> n5 = new KNode <int>(3);
            KNode <int> n6 = new KNode <int>(8);
            KNode <int> n7 = new KNode <int>(8);

            // middle tier
            List <KNode <int> > children = new List <KNode <int> >()
            {
                n1, n2, n3
            };
            KNode <int> n8 = new KNode <int>(4, children);

            children = new List <KNode <int> >()
            {
                n4
            };
            KNode <int> n9 = new KNode <int>(5, children);

            children = new List <KNode <int> >()
            {
                n5, n6, n7
            };
            KNode <int> n10 = new KNode <int>(15, children);

            //root
            children = new List <KNode <int> >()
            {
                n8, n9, n10
            };
            KNode <int> n11 = new KNode <int>(3, children);

            KAryTree <int> newTree = new KAryTree <int>(3);

            newTree.Root = n11;

            Console.WriteLine(newTree.Root.Value);

            //List<KNode<int>> list = newTree.Root.Children;

            List <int> result = newTree.BreadthFirst();

            foreach (int value in result)
            {
                Console.Write($"[ {value} ]=>");
            }
        }