/// <summary> /// Creates a deepcopy of this graph /// </summary> /// <returns>Graph</returns> public DirectedGraph DeepCopy() { var copy = new DirectedGraph(Vertices()); for (int e = 0; e < addedEdges.Count; e++) { copy.AddEdge(addedEdges[e][0], addedEdges[e][1]); } return copy; }
/// <summary> /// Reverse the directed edges in the graph /// </summary> /// <returns></returns> public DirectedGraph Reverse() { var reversedGraph = new DirectedGraph(vertices); for (int v = 0; v < vertices; v++) { foreach (var w in AdjecentVertices(v)) { reversedGraph.AddEdge(w, v); } } return reversedGraph; }