/** * Unit tests the {@code NonrecursiveDirectedDFS} data type. * * @param args the command-line arguments */ public static void main(String[] args) { In in = new In(args[0]); Digraph G = new Digraph(in); int s = Integer.parseInt(args[1]); NonrecursiveDirectedDFS dfs = new NonrecursiveDirectedDFS(G, s); for (int v = 0; v < G.V(); v++) if (dfs.marked(v)) StdOut.print(v + " "); StdOut.println(); }
public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - tinyDG.txt"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); string fileName; switch (fileNumber) { case "1": fileName = "tinyDG.txt"; break; case "quit": return; default: return; } var @in = new In($"Files\\Graphs\\{fileName}"); var lines = @in.ReadAllLines(); var lineIterator = 0; var v = 0; var e = 0; var edges = new List <EdgeD>(); foreach (var line in lines) { if (lineIterator == 0) { v = Convert.ToInt32(line); } if (lineIterator == 1) { e = Convert.ToInt32(line); } if (lineIterator > 1) { var lineSplitted = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var ve = Convert.ToInt32(lineSplitted[0]); var we = Convert.ToInt32(lineSplitted[1]); var edge = new EdgeD(ve, we); edges.Add(edge); } lineIterator++; } var digraph = new Digraph(v, e, edges); Console.WriteLine(digraph); Console.WriteLine("------------------------------------------------------"); var bag1 = new Core.Collections.Bag <Integer> { new Integer(1) }; var bag2 = new Core.Collections.Bag <Integer> { new Integer(2) }; var bag3 = new Core.Collections.Bag <Integer> { new Integer(6) }; var listSources = new List <Core.Collections.Bag <Integer> > { bag1, bag2, bag3 }; foreach (var sources in listSources) { foreach (var source in sources) { // multiple-source reachability var dfs = new NonrecursiveDirectedDFS(digraph, source.Value); // print out vertices reachable from sources for (var i = 0; i < digraph.V; i++) { if (dfs.Marked(i)) { Console.Write($"{i} "); } } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("---------------------------------------------------------"); } Console.ReadLine(); }