Example #1
0
        public Graph.IGraphInterface GenerateGraph()
        {
            // Variable
            int probabilityEdge;

            foreach (Graph.IVertexInterface firstVertex in graph.AllVertices())
            {
                foreach (Graph.IVertexInterface secondVertex in graph.AllVertices())
                {
                    // No duplicates
                    if (usedVerticesHashSet.Contains(secondVertex))
                    {
                        continue;
                    }

                    if (firstVertex == secondVertex)
                    {
                        continue;
                    }

                    probabilityEdge = random.Next(0, 100000);

                    if (probabilityEdge <= probability)
                    {
                        graph.EdgeAdd(new Graph.Edge(firstVertex, secondVertex));
                    }
                }

                usedVerticesHashSet.Add(firstVertex);
            }

            usedVerticesHashSet = null;
            return(graph);
        }