package DirectedGraphJava; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; public class Main { public static DirectedGraph read_from_file(String filename) throws FileNotFoundException { DirectedGraph graph = new DirectedGraph(); File file = new File(filename); Scanner scanner = new Scanner(file); Integer num_vertices = scanner.nextInt(); for(Integer i = 0; i < num_vertices; i++) graph.addVertex(i); Integer num_edges = scanner.nextInt(); for(Integer i = 0; i < num_edges; i++){ Integer v1 = scanner.nextInt(); Integer v2 = scanner.nextInt(); Integer w = scanner.nextInt(); graph.addEdge(v1, v2, w); } scanner.close(); return graph; } public static void write_to_file(DirectedGraph graph, String filename) throws IOException { DirectedGraph new_graph = graph.reindex(); File file = new File(filename); file.createNewFile(); FileWriter writer = new FileWriter(file); writer.write(new_graph.numVertices().toString() + " " + new_graph.numEdges().toString() + "\n"); for(Iterator,Integer>> edge = new_graph.edges(); edge.hasNext();){ Pair,Integer> e = edge.next(); writer.write(e.first.first.toString() + " " + e.first.second.toString() + " " + e.second.toString() + "\n"); } writer.close(); } public static DirectedGraph random_graph(Integer num_vertices, Integer num_edges) { DirectedGraph graph = new DirectedGraph(); for(Integer i = 0; i < num_vertices; i++) graph.addVertex(i); for(Integer i = 0; i < num_edges; i++){ Integer v1 = (int)(Math.random() * num_vertices); Integer v2 = (int)(Math.random() * num_vertices); Integer w = (int)(Math.random() * 100); if(graph.isEdge(v1, v2)){ i--; continue; } graph.addEdge(v1, v2, w); } return graph; } public static void main(String[] args) { ui UI = new ui(); UI.run(); } }