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); }
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); }
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); }
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 } }
/// <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); }
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} ]=>"); } }