void Start() { SymbolDigraph sg = new SymbolDigraph(txt, '/'); Topological topological = new Topological(sg.digraph()); foreach (int v in topological.Order()) { print(sg.nameOf(v)); } }
/**/ public static void main(string[] strarr) { string str = strarr[0]; string str2 = strarr[1]; SymbolDigraph symbolDigraph = new SymbolDigraph(str, str2); Topological topological = new Topological(symbolDigraph.G()); Iterator iterator = topological.order().iterator(); while (iterator.hasNext()) { int i = ((Integer)iterator.next()).intValue(); StdOut.println(symbolDigraph.name(i)); } }
public static SymbolDigraph GenerateSymbolDigraph(string file, bool allowSelfLoop = true, bool allowParallelEdges = true) { var lines = File.ReadAllLines(file); var input = new List <Tuple <string, string> >(); foreach (var line in lines) { var connection = line.Split(' '); input.Add(new Tuple <string, string>(connection[0], connection[1])); } var symbolGraph = new SymbolDigraph(input, allowSelfLoop, allowParallelEdges); return(symbolGraph); }
public static void TestFileInputTopologicalSort() { string absFileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "GraphFiles", "topSort.txt"); SymbolDigraph symbolDigraph = new SymbolDigraph(absFileName, ' '); DepthFirstOrder dfsOrder = new DepthFirstOrder(symbolDigraph.graph); string preOrderList = String.Join(",", Array.ConvertAll(dfsOrder.PreOrder, x => symbolDigraph.GetKey(x))); string postOrderList = String.Join(",", Array.ConvertAll(dfsOrder.PostOrder, x => symbolDigraph.GetKey(x))); string reversePostOrderList = String.Join(",", Array.ConvertAll(dfsOrder.ReversePostOrder, x => symbolDigraph.GetKey(x))); Console.WriteLine(string.Format("PreOrder:{0}", preOrderList)); Console.WriteLine(string.Format("PostOrder:{0}", postOrderList)); Console.WriteLine(string.Format("ReversePostOrder:{0}", reversePostOrderList)); }
/**/ public static void main(string[] strarr) { string str = strarr[0]; string str2 = strarr[1]; SymbolDigraph symbolDigraph = new SymbolDigraph(str, str2); Digraph digraph = symbolDigraph.G(); while (!StdIn.IsEmpty) { string str3 = StdIn.readLine(); Iterator iterator = digraph.adj(symbolDigraph.index(str3)).iterator(); while (iterator.hasNext()) { int i = ((Integer)iterator.next()).intValue(); StdOut.println(new StringBuilder().append(" ").append(symbolDigraph.name(i)).toString()); } } }
public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - jobs.txt"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); string fileName; char delimiter; switch (fileNumber) { case "1": fileName = "jobs.txt"; delimiter = '/'; break; case "quit": return; default: return; } var @in = new In($"Files\\Graphs\\{fileName}"); var lines = !fileName.EndsWith("zip") ? @in.ReadAllLines() : @in.ReadAllLinesFromZip(); var sg = new SymbolDigraph(lines, delimiter); Console.WriteLine(sg.G); var topological = new Topological(sg.G); foreach (int v in topological.Order()) { Console.WriteLine(sg.Name(v)); } Console.ReadLine(); }
public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - routes.txt"); // Prompt Console.WriteLine("2 - movies.txt"); // Prompt //Console.WriteLine("3 - largeG.zip"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); string fileName; char delimiter; List <string> names; switch (fileNumber) { case "1": fileName = "routes.txt"; delimiter = '\u0020'; names = new List <string> { "JFK", "ATL", "LAX" }; break; case "2": fileName = "movies.txt"; delimiter = '/'; names = new List <string> { "Tin Men (1987)", "Bacon, Kevin" }; break; //case "3": // fieName = "largeG.zip"; // break; case "quit": return; default: return; } var @in = new In($"Files\\Graphs\\{fileName}"); var lines = !fileName.EndsWith("zip") ? @in.ReadAllLines() : @in.ReadAllLinesFromZip(); var sg = new SymbolDigraph(lines, delimiter); var digraph = sg.G; foreach (var name in names) { Console.WriteLine($"{name}"); if (sg.Contains(name)) { var s = sg.Index(name); foreach (int v in digraph.Adj(s)) { Console.WriteLine($" {sg.Name(v)}"); } } else { Console.WriteLine($"input not contain '{name}'"); } } Console.ReadLine(); }