69 lines
2.3 KiB
Java
69 lines
2.3 KiB
Java
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<Pair<Pair<Integer, Integer>,Integer>> edge = new_graph.edges(); edge.hasNext();){
|
|
Pair<Pair<Integer, Integer>,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();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|