public void PostorderIterativeTest() { // Test Empty tree root = null; Assert.Equal <List <int> >(new List <int>(), BinaryTreeIterativeTraversal.PostorderIterativeTraverse(root)); // 10 // / \ // 4 9 // / \ / \ // 2 3 7 8 // / / // 1 6 // \ // 5 root = new BinaryTreeIterativeTraversal.TreeNode(10); root.left = new BinaryTreeIterativeTraversal.TreeNode(4); root.right = new BinaryTreeIterativeTraversal.TreeNode(9); root.left.left = new BinaryTreeIterativeTraversal.TreeNode(2); root.left.right = new BinaryTreeIterativeTraversal.TreeNode(3); root.right.left = new BinaryTreeIterativeTraversal.TreeNode(7); root.right.right = new BinaryTreeIterativeTraversal.TreeNode(8); root.left.left.left = new BinaryTreeIterativeTraversal.TreeNode(1); root.right.left.left = new BinaryTreeIterativeTraversal.TreeNode(6); root.right.left.left.right = new BinaryTreeIterativeTraversal.TreeNode(5); List <int> postorder = BinaryTreeIterativeTraversal.PostorderIterativeTraverse(root); for (int i = 0; i < postorder.Count; i++) { Assert.Equal(expectedList[i], postorder[i]); } }
public static bool IsBst(BinaryNode rootNode) { var orderedNodes = BinaryTreeIterativeTraversal.Visit(rootNode); for (int i = 1; i < orderedNodes.Count; i++) { if (orderedNodes[i - 1] > orderedNodes[i]) { return(false); } } return(true); }
public void Test1() { var root = new BinaryNode() { Value = 10 }; root.Left = new BinaryNode() { Value = 2 }; var fifteen = new BinaryNode() { Value = 15 }; fifteen.Left = new BinaryNode() { Value = 12 }; fifteen.Right = new BinaryNode() { Value = 18 }; root.Right = fifteen; var expectedNodes = new List <int>() { 2, 10, 12, 15, 18 }; var orderedNodes = BinaryTreeIterativeTraversal.Visit(root); Assert.That(orderedNodes.SequenceEqual(expectedNodes), Is.True); }
public void PreorderIterativeTest() { // Test Empty tree root = null; Assert.Equal <List <int> >(new List <int>(), BinaryTreeIterativeTraversal.PreorderIterativeTraverse(root)); // 1. Arrange // Build up a binary tree // 1 // / \ // 2 6 // / \ / \ // 3 5 7 10 // / / // 4 8 // \ // 9 root = new BinaryTreeIterativeTraversal.TreeNode(1); root.left = new BinaryTreeIterativeTraversal.TreeNode(2); root.right = new BinaryTreeIterativeTraversal.TreeNode(6); root.left.left = new BinaryTreeIterativeTraversal.TreeNode(3); root.left.right = new BinaryTreeIterativeTraversal.TreeNode(5); root.right.left = new BinaryTreeIterativeTraversal.TreeNode(7); root.right.right = new BinaryTreeIterativeTraversal.TreeNode(10); root.right.left.left = new BinaryTreeIterativeTraversal.TreeNode(8); root.right.left.left.right = new BinaryTreeIterativeTraversal.TreeNode(9); root.left.left.left = new BinaryTreeIterativeTraversal.TreeNode(4); // 2. Assert List <int> preorder = BinaryTreeIterativeTraversal.PreorderIterativeTraverse(root); for (int i = 0; i < preorder.Count; i++) { Assert.Equal(expectedList[i], preorder[i]); } }