using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using Graph = NetworkFlow.Graph; namespace Program { class Program { static void Main(string[] args) { List Analysii = new(); DirectoryInfo graphDir = new DirectoryInfo((args.Length > 0) ? args[0] : "graphs"); if (!graphDir.Exists) { Console.WriteLine($"Failed to open {graphDir}: Graph does not exist."); System.Environment.Exit(1); } foreach (var file in graphDir.EnumerateFiles()) { Graph graph = ReadFile(file.FullName); Analysis analysis = new(graph); analysis.Analize(); Analysii.Add(analysis); Console.WriteLine(analysis.ToString()); } } public static Graph ReadFile(string file) { // create default Graph object Graph graph = new Graph(undirected: true); // Read in graph file foreach (string line in File.ReadLines(file)) { // each file line is a Node with optional edges // line format: // vertex:int optional[ connected-vertex:int edge-weight:double optional[..] ] List vals = line.Split(' ').ToList(); int u, v; double weight; int.TryParse(vals[0], out u); graph.AddNode(u); for (int i = 1; i < vals.Count - 1; i += 2) { // AddEdge(int u, int v, double weight) int.TryParse(vals[i], out v); double.TryParse(vals[i + 1], out weight); graph.AddEdge(u, v, weight); } } // return object when done return graph; } } }