Beispiel #1
0
        private static void TestFindStronglyConnectedComponents(string path)
        {
            IDirectedGraphWithReversed <int> graph;

            using (var reader = new StreamReader(path))
            {
                graph = GraphHelper.ParseFromTextDirectedGraph(reader, saveReversedVersion: true);
            }

            var results     = GraphSearch.FindStronglyConnectedComponents(graph);
            var biggestSccs = results.OrderByDescending(r => r.Count)
                              .Take(6)
                              .ToList();

            Console.WriteLine($"Strongly connected components number - {biggestSccs.Count}!");
            for (var i = 0; i < biggestSccs.Count; i++)
            {
                var sccVertices = biggestSccs[i];
                Console.WriteLine($"SCC #{i+1}: {sccVertices.Count}");
            }
        }