public void TestTraverseLevelOrderWhenTreeIsEmptyShouldWriteNothing() { var tree = new IntBinarySearchTree(); BinarySearchTreeTraversalHelper helper = new BinarySearchTreeTraversalHelper(); StringBuilder builder = new StringBuilder(); void WriteValue(int val) { builder.Append($"{val},"); } helper.TraverseLevelOrder(tree, WriteValue); Assert.AreEqual("", builder.ToString()); }
static void TestBinarySearchTree() { var tree = new IntBinarySearchTree(); tree.Insert(7); tree.Insert(4); tree.Insert(9); tree.Insert(1); tree.Insert(6); tree.Insert(8); tree.Insert(10); GetNodesAtDistance(0); GetNodesAtDistance(-5); GetNodesAtDistance(1); GetNodesAtDistance(2); GetNodesAtDistance(3); GetNodesAtDistance(20); void GetNodesAtDistance(int distance) { Console.WriteLine($"============================================"); Console.WriteLine($"Getting nodes values at distance {distance}"); var values = tree.GetNodesAtDistance(distance); foreach (var item in values) { Console.WriteLine(item); } } //Console.WriteLine($"{tree.Contains(8)}"); //Console.WriteLine($"{tree.Contains(-20)}"); //BinarySearchTreeTraversalHelper traversalHelper = new BinarySearchTreeTraversalHelper(); //Console.WriteLine("Testing Traversing - InOrder Reversed method - using recursion"); //traversalHelper.TraverseInOrderReversed(tree.Root, Console.WriteLine); //Console.WriteLine("Testing Traversing - PostOrder method - using recursion"); //traversalHelper.TraversePostOrder(tree.Root, Console.WriteLine); //Console.WriteLine($"Tree Height: {tree.Height()}"); //Console.WriteLine($"Empty Tree Height: {new BinarySearchTree<int>().Height()}"); //Console.WriteLine($"Tree Min Val - Tree processed As Normal Binary Tree: {tree.CalculateMinAsBinaryTree()}"); //Console.WriteLine($"Tree Min Val - Tree processed As Binary Search Tree: {tree.CalculateMinAsBinarySearchTree()}"); }
public void TestTraverseLevelOrderWhenTreeHasData() { var tree = new IntBinarySearchTree(); tree.Insert(7); tree.Insert(4); tree.Insert(9); tree.Insert(1); tree.Insert(6); tree.Insert(8); tree.Insert(10); BinarySearchTreeTraversalHelper helper = new BinarySearchTreeTraversalHelper(); StringBuilder builder = new StringBuilder(); void WriteValue(int val) { builder.Append($"{val},"); } helper.TraverseLevelOrder(tree, WriteValue); Assert.AreEqual("7,4,9,1,6,8,10,", builder.ToString()); }