private static Vertex[] CreateDirectedAcyclicGraph(int n) { Vertex[] vertices = new Vertex[n]; for (int i = 0; i < vertices.Length; i++) { vertices[i] = new Vertex(); } for (int i = 0; i < vertices.Length; i++) { for (int j = 0; j < i; j++) { vertices[i].AddUnDirectedEdge(vertices[j]); } } while (!TopologicalSortTestClass.IsDirectedAcyclicGraph(vertices)) { TopologicalSortTestClass.RemoveRandomEdge(vertices); } foreach (Vertex v in vertices) { v.Reset(); } return(vertices); }