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);
        }