public void PostOrderTraversal() { // 4 // / \ // 2 5 // / \ \ // 1 3 7 // / \ // 6 8 BinaryTree aTree = new BinaryTree(4); aTree.addToTree(5); aTree.addToTree(2); aTree.addToTree(7); aTree.addToTree(3); aTree.addToTree(6); aTree.addToTree(1); aTree.addToTree(8); aTree.postOrder(); int[] expected = { 1, 3, 2, 6, 8, 7, 5, 4 }; int index = 0; foreach (int actual in aTree.Output) { Assert.AreEqual(expected[index++], actual); } }
public void removeNode_LeftLeaf() { // 4 // / \ // 2 5 // / \ \ // 1 3 7 // / \ // 6 8 BinaryTree aTree = new BinaryTree(4); aTree.addToTree(5); aTree.addToTree(2); aTree.addToTree(7); aTree.addToTree(3); aTree.addToTree(6); aTree.addToTree(1); aTree.addToTree(8); Assert.IsTrue(aTree.remove(1), "Remove should return true for found node"); // 4 // / \ // 2 5 // / \ \ // 3 7 // / \ // 6 8 int[] expected = new[] { 3, 2, 6, 8, 7, 5, 4 }; int index = 0; aTree.postOrder(); foreach (int actual in aTree.Output) { Assert.AreEqual(expected[index++], actual); } }
public void remove_CurrentRight_HasLeft() { // 4 // / \ // 2 6 // / \ / \ // 1 3 5 8 // / // 7 BinaryTree aTree = new BinaryTree(4); aTree.addToTree(2); aTree.addToTree(6); aTree.addToTree(1); aTree.addToTree(3); aTree.addToTree(5); aTree.addToTree(8); aTree.addToTree(7); Assert.IsTrue(aTree.remove(6), "Remove should return true for found node"); // 4 // / \ // 2 7 // / \ / \ // 1 3 5 8 int[] expected = new[] { 1, 3, 2, 5, 8, 7, 4 }; int index = 0; aTree.postOrder(); foreach (int actual in aTree.Output) { Assert.AreEqual(expected[index++], actual); } }