public static void MainMethod() { Console.WriteLine("Press x to exit"); bool isContinue = true; { var selection = "4";// Console.ReadLine().Trim(); isContinue = selection.ToLowerInvariant() != "x"; if (!int.TryParse(selection, out int option)) { Console.WriteLine("Please try again .."); } switch (option) { case 1: TreeRemove.Tests(); break; case 2: MinHeapKClosestTests.Tests(); break; case 3: WordCombinations.Tests(); break; case 4: TreePaths.Tests(); break; } } Console.ReadLine(); }
public static void Tests() { var tree = new TreePaths() { Root = new Node(3) { Left = new Node(1) { }, Right = new Node(8) { Left = new Node(3) { }, } } }; Console.WriteLine($"Number of paths for k = 11 -> {tree.CalculatePaths(11)}"); Console.WriteLine($"CalculatePathsV2 -> Number of paths for k = 11 -> {tree.CalculatePathsV2(tree.Root, 11)}"); var tree1 = new TreePaths() { Root = new Node(1) { Right = new Node(2) { Right = new Node(3) { Right = new Node(4) { Right = new Node(5) { }, }, }, } } }; Console.WriteLine($"Number of paths for k = 2 -> {tree1.CalculatePaths(3)}"); Console.WriteLine(); var tree2 = new TreePaths() { Root = new Node(50) { Left = new Node(25) { Left = new Node(12) , Right = new Node(30) }, Right = new Node(75) { Left = new Node(60) , Right = new Node(100) } } }; Console.WriteLine(); Console.WriteLine("Level order"); tree2.LevelOrder(tree2.Root); Console.WriteLine(); Console.WriteLine("In order"); tree2.InOrder(tree2.Root); tree2.DfsInOrderRecur(tree2.Root); Console.WriteLine(); Console.WriteLine("Pre order"); tree2.DfsPreOrder(tree2.Root); Console.WriteLine(); Console.WriteLine("Pre order Recursive "); tree2.DfsPreOrderRecursive(tree2.Root); Console.WriteLine(); Console.WriteLine("POST order"); tree2.PostOrder(tree2.Root); var paths = new List <List <int> >(); tree2.PrintPaths(tree2.Root, new List <int>(), paths); tree2.Print(); Console.WriteLine(); foreach (var item in paths) { Console.WriteLine(string.Join(" ->", item)); } var prefixSums = new List <int>(); tree2.PrefixSum(tree2.Root, prefixSums); Console.WriteLine(); foreach (var item in prefixSums) { Console.Write($"{item}"); } }