public static Kruskal MakeGraph() { int V = 15; // Number of vertices in graph int E = 19; // Number of edges in graph Kruskal graph = new Kruskal(V, E); // add edge 0-1 graph.edge[0].src = 0; graph.edge[0].dest = 1; graph.edge[0].weight = 6; // add edge 0-3 graph.edge[1].src = 0; graph.edge[1].dest = 3; graph.edge[1].weight = 2; // add edge 1-2 graph.edge[2].src = 1; graph.edge[2].dest = 2; graph.edge[2].weight = 4; // add edge 1-5 graph.edge[3].src = 1; graph.edge[3].dest = 5; graph.edge[3].weight = 3; // add edge 2-8 graph.edge[4].src = 2; graph.edge[4].dest = 8; graph.edge[4].weight = 4; // add edge 3-4 graph.edge[5].src = 3; graph.edge[5].dest = 4; graph.edge[5].weight = 23; // add edge 4-11 graph.edge[6].src = 4; graph.edge[6].dest = 11; graph.edge[6].weight = 6; // add edge 6-7 graph.edge[7].src = 6; graph.edge[7].dest = 7; graph.edge[7].weight = 20; // add edge 7-13 graph.edge[8].src = 7; graph.edge[8].dest = 13; graph.edge[8].weight = 18; // add edge 8-11 graph.edge[9].src = 8; graph.edge[9].dest = 11; graph.edge[9].weight = 5; // add edge 8-6 graph.edge[10].src = 8; graph.edge[10].dest = 6; graph.edge[10].weight = 2; // add edge 8-9 graph.edge[11].src = 8; graph.edge[11].dest = 9; graph.edge[11].weight = 2; // add edge 8-10 graph.edge[12].src = 8; graph.edge[12].dest = 10; graph.edge[12].weight = 1; // add edge 9-10 graph.edge[13].src = 9; graph.edge[13].dest = 10; graph.edge[13].weight = 9; // add edge 9-13 graph.edge[14].src = 9; graph.edge[14].dest = 13; graph.edge[14].weight = 3; // add edge 10-11 graph.edge[15].src = 10; graph.edge[15].dest = 11; graph.edge[15].weight = 4; // add edge 10-12 graph.edge[16].src = 10; graph.edge[16].dest = 12; graph.edge[16].weight = 1; // add edge 11-12 graph.edge[17].src = 11; graph.edge[17].dest = 12; graph.edge[17].weight = 6; // add edge 13-14 graph.edge[18].src = 13; graph.edge[18].dest = 14; graph.edge[18].weight = 7; return(graph); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); Graph g = makeGraph(); g.BFS(); Console.WriteLine(); g.DFSRec(); Console.WriteLine(); g.DFSStack(); Console.WriteLine(); Graph g2 = makeWeightedGraph(); Prim p = new Prim(); p.primMST(g2); Console.WriteLine(); Kruskal.MakeGraph().KruskalMST(); Console.WriteLine(); Djikstra d = new Djikstra(); d.dijkstra(g2, 0); Console.WriteLine(); GraphCycle gc = new GraphCycle(); if (gc.isCyclicDirected(g)) { Console.WriteLine("The graph is cyclic"); } else { Console.WriteLine("The graph is not cyclic"); } Console.WriteLine(); TopSort ts = new TopSort(); ts.TopologicalSort(g); ts.allTopologicalSorts(g); Console.WriteLine(); FloydWarshal fw = new FloydWarshal(); fw.floydWarshall(g); Console.WriteLine(); Connectivity c = new Connectivity(); for (int i = 0; i < g.getSize(); i++) { if (c.isReachable(g, 5, i)) { Console.WriteLine("The path from 1 to " + i + " is reachable"); } else { Console.WriteLine("The path from 1 to " + i + " is not reachable"); } } c.ArticulationPoint(g2); Console.WriteLine(); Euler e = new Euler(); if (e.isEulerianCycleUndirected(g)) { Console.WriteLine("It is Eulerian cycle"); } else { Console.WriteLine("It is not eyulerian cycle"); } Console.WriteLine(); CloneGraph cg = new CloneGraph(); var node = cg.MakeExampleGraph(); var result = cg.Clone(node); cg.Print(node); Console.WriteLine(); cg.Print(result); Console.ReadLine(); }