Esempio n. 1
0
        private static GraphDfs BuildGraphDfs(string[] projects, string[][] dependencies)
        {
            GraphDfs graph = new GraphDfs();

            foreach (var project in projects)
            {
                graph.GetOrCreateNode(project);
            }

            foreach (string[] dependency in dependencies)
            {
                string first  = dependency[0];
                string second = dependency[1];
                graph.AddEdge(first, second);
            }

            return(graph);
        }
Esempio n. 2
0
        // solution #2 : build DPS
        public static Stack <ProjectDfs> FindBuildOrderDfs(string[] projects, string[][] dependencies)
        {
            GraphDfs graph = BuildGraphDfs(projects, dependencies);

            return(OrderProjectsDfs(graph.GetNodes()));
        }