public PyramidTree CreateTree() { var input = arrayProvider.GetPyramidArray(); PyramidTree tree = new PyramidTree(); for (int i = 0; i < input?.Length; i++) { tree.AddNode(input[i]); } return(tree); }
public List <List <int> > FindEvenOddPaths(PyramidTree tree) { if (tree == null || tree.Root == null) { return(null); } Paths = new List <List <Node> >(); treeDepth = tree.GetDepth(); FindEvenOddPaths(tree.Root, new List <Node>()); return(Paths.Select(path => path.Select(node => node.Value).ToList()).ToList()); }
static void Main(string[] args) { var service = new PyramidTreeService(new StaticPyramidArrayProvider()); PyramidTree tree = service.CreateTree(); //tree.Print(); //Console.WriteLine(); var paths = service.FindEvenOddPaths(tree); service.PrintAllPaths(paths); service.PrintLongestPath(paths); Console.ReadLine(); }