public static Graph RandGraph(int V, int E, int seed = -1) { if (seed == -1) { seed = DateTime.Now.Millisecond; } Graph G = new Graph(); G.IsDirected = false; Random random = new Random(seed); double p = 2 * E / V / (V - 1.0); for (int i = 0; i < V; i++) { G.CreateVertex(i); for (int j = 0; j < i; j++) { if (random.NextDouble() < p) { G.InsertEdge(i, j, G.IsDirected); } } } return(G); }
public static Graph Read(TextReader reader) { Graph G = new Graph(); string line = reader.ReadLine(); for (int i = 0; i < int.Parse(line); i++) { G.CreateVertex(i); } while ((line = reader.ReadLine()) != null) { string[] tokens = line.Split(','); G.InsertEdge(int.Parse(tokens[0]) - 1, int.Parse(tokens[1]) - 1, false); } return(G); }
public static Graph Read(TextReader reader) { Graph G = new Graph(); string line = reader.ReadLine(); for (int i = 0; i < int.Parse(line); i++) G.CreateVertex(i); while ((line = reader.ReadLine()) != null) { string[] tokens = line.Split(','); G.InsertEdge(int.Parse(tokens[0]) - 1, int.Parse(tokens[1]) - 1, false); } return G; }
public static Graph RandGraph(int V, int E, int seed = -1) { if (seed == -1) seed = DateTime.Now.Millisecond; Graph G = new Graph(); G.IsDirected = false; Random random = new Random(seed); double p = 2 * E / V / (V - 1.0); for (int i = 0; i < V; i++) { G.CreateVertex(i); for (int j = 0; j < i; j++) if (random.NextDouble() < p) G.InsertEdge(i, j, G.IsDirected); } return G; }