public void CharsPostOrderTraversal() { var postOrder = new PostOrderTraversal <char>(); var binaryTree = new BinaryTree <char>(postOrder); binaryTree.AddRange(Chars); }
public RestTemplate Traverse([FromBody] NodeDto root, string type) { BSTree tree = new BSTree(toEntity(root, NodeFactoryImpl.getInstance())); List <int> turnTo = new List <int>(); BSTTraversal traversal = null; TraversalAction action = new TraversalActionImpl(turnTo); if (type.Equals("preOrder")) { traversal = new PreOrderTraversal(action); } else if (type.Equals("inOrder")) { traversal = new InOrderTraversal(action); } else if (type.Equals("postOrder")) { traversal = new PostOrderTraversal(action); } else { return(new RestTemplate((int)HttpStatusCode.BadRequest, null, "preOrder or inOrder or postOrder is required for type")); } tree.traverse(traversal); return(new RestTemplate((int)HttpStatusCode.OK, turnTo, "")); }
public void NumbersPostOrderTraversal() { var postOrder = new PostOrderTraversal <int>(); var binaryTree = new BinaryTree <int>(postOrder); binaryTree.AddRange(Numbers); }
public void StringsPostOrderTraversal() { var postOrder = new PostOrderTraversal <string>(); var binaryTree = new BinaryTree <string>(postOrder); binaryTree.AddRange(Strings); }
private static void Main() { var binaryTree = new BinaryTree <int> { 8, 5, 12, 3, 7, 10, 15 }; var inOrder = new InOrderTraversal(); var preOrder = new PreOrderTraversal(); var postOrder = new PostOrderTraversal(); Console.Write("Pre-order : "); binaryTree.SetTraversalStrategy(preOrder); binaryTree.PrintToConsole(); Console.WriteLine(Environment.NewLine); Console.Write("Post-order : "); binaryTree.SetTraversalStrategy(postOrder); binaryTree.PrintToConsole(); Console.WriteLine(Environment.NewLine); Console.Write("In-order : "); binaryTree.SetTraversalStrategy(inOrder); binaryTree.PrintToConsole(); Console.WriteLine(Environment.NewLine); Console.WriteLine($"Count : {binaryTree.Count}"); const int remove = 10; var isRemoved = binaryTree.Remove(remove); if (isRemoved) { Console.WriteLine(Environment.NewLine); Console.WriteLine($"Node {remove} was removed, count after remove : {binaryTree.Count}"); Console.Write("Values: "); binaryTree.PrintToConsole(); } var arr = new int[binaryTree.Count]; binaryTree.CopyTo(arr, 0); Console.WriteLine(Environment.NewLine); Console.WriteLine("Copy to array: "); arr.PrintToConsole(); binaryTree.Clear(); Console.WriteLine(Environment.NewLine); Console.WriteLine($"Count after clear: {binaryTree.Count}"); Console.Write("Values after clear: "); binaryTree.PrintToConsole(); Console.WriteLine(Environment.NewLine); Console.WriteLine("Press any key to exit..."); Console.ReadLine(); }
public void IterativePostOrderTraversalTest() { var expectedOutput = "4526731"; using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); BinaryTreeNode <int> binaryTree = TestData.CreateBinaryTree(); PostOrderTraversal <int> poOT = new PostOrderTraversal <int>(); poOT.IterativePostOrder(binaryTree); Assert.AreEqual <string>(expectedOutput, sw.ToString()); } }
private static void Main() { Console.WriteLine("Represents the following tree"); Console.WriteLine(@" 4 "); Console.WriteLine(@" / \ "); Console.WriteLine(@" / \ "); Console.WriteLine(@" / \ "); Console.WriteLine(@" / \ "); Console.WriteLine(@" 2 6 "); Console.WriteLine(@" / \ / \ "); Console.WriteLine(@" / \ / \ "); Console.WriteLine(@" / \ / \ "); Console.WriteLine(@" 1 3 5 7 "); var binaryTree = new BinaryTree<int>(); binaryTree.Add(4); binaryTree.Add(2); binaryTree.Add(6); binaryTree.Add(1); binaryTree.Add(3); binaryTree.Add(5); binaryTree.Add(7); var preOrderTraversal = new PreOrderTraversal<int>(); Console.Write("PreOrder: "); preOrderTraversal.Traverse(binaryTree.Root); Console.WriteLine(); Console.Write("InOrder: "); var inOrderTraversal = new PreOrderTraversal<int>(); inOrderTraversal.Traverse(binaryTree.Root); Console.WriteLine(); Console.Write("PostOrder: "); var postOrderTraversal = new PostOrderTraversal<int>(); postOrderTraversal.Traverse(binaryTree.Root); Console.WriteLine(); Console.WriteLine("Value to find: 5"); Node<int> nodeFound = binaryTree.Find(5); if (nodeFound == null) Console.WriteLine("Value not found"); else Console.WriteLine("Value found: {0}", nodeFound.Value); Console.WriteLine(); Console.WriteLine("Value to find: 100"); Node<int> notFound = binaryTree.Find(100); Console.WriteLine(notFound == null ? "Worked as expected" : "Failed"); }
public void TestPostOrderTraversal() { // arrange var expected = new int[] { 3, 7, 5, 10, 15, 12, 8 }; var binaryTree = new BinaryTree <int> { 8, 5, 12, 3, 7, 10, 15 }; var postOrder = new PostOrderTraversal <int>(); // act binaryTree.SetTraversalStrategy(postOrder); // assert Assert.IsTrue(expected.SequenceEqual(binaryTree)); }
public void TestPostOrderTraversal() { TreeNode <int> root = new TreeNode <int>(1); ITraversal <int> _traversal = new PostOrderTraversal <int>(); root.Left = new TreeNode <int>(2); root.Right = new TreeNode <int>(3); root.Left.Right = new TreeNode <int>(5); root.Left.Left = new TreeNode <int>(4); IList <int> expectedOutput = new List <int>(new List <int> { 4, 5, 2, 3, 1 }); var binarytree = new BinaryTree <int>(root, _traversal); var output = binarytree.Traverse(); CollectionAssert.Equals(expectedOutput, output); }
public static void PostOrderTest() { var root = TreeUtils.CreateRandomTree(); PrintUtils.PrintList(PostOrderTraversal.PostOrderIterative(root)); }