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 static void InOrderTest() { var root = TreeUtils.CreateRandomTree(); InOrderTraversal.InOrderTraverselIterative(root); Console.WriteLine(); InOrderTraversal.InOrderTraverselIterative(root); }
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 InOrderTraversal1() { var iot = new InOrderTraversal <int>(); var tree = BuildBunchOfIntNodes(); Assert.False(iot.Contains(tree, 1)); Assert.False(iot.Contains(null, 1)); Assert.True(iot.Contains(tree, 10)); Assert.True(iot.Contains(tree, 25)); Assert.False(iot.Contains(tree, 125)); }
public void IterativeInOrderTraversalTest() { var expectedOutput = "4251637"; using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); BinaryTreeNode <int> binaryTree = TestData.CreateBinaryTree(); InOrderTraversal <int> iOT = new InOrderTraversal <int>(); iOT.IterativeInOrder(binaryTree); Assert.AreEqual <string>(expectedOutput, sw.ToString()); } }
public void TestInOrderTraversal() { // arrange var expected = new int[] { 3, 5, 7, 8, 10, 12, 15 }; var binaryTree = new BinaryTree <int> { 8, 5, 12, 3, 7, 10, 15 }; var inOrder = new InOrderTraversal <int>(); // act binaryTree.SetTraversalStrategy(inOrder); // assert Assert.IsTrue(expected.SequenceEqual(binaryTree)); }