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}"); } }