Esempio n. 1
0
        static void Main(string[] args)
        {
            UndirectedGraph <int> graph = new UndirectedGraph <int>();

            graph.AddVertex(2);
            graph.AddVertex(5);
            graph.AddVertex(7);
            graph.AddVertex(8);
            graph.AddVertex(23);
            graph.AddVertex(12);

            graph.AddEdge(2, 5);
            graph.AddEdge(7, 5);
            graph.AddEdge(23, 12);
            graph.AddEdge(12, 2);
            graph.AddEdge(8, 7);

            Console.WriteLine("Number of vertex: {0}", graph.NumberOfVertices);
            Console.WriteLine("Number of edges: {0}", graph.NumberOfEdges);
            Console.ReadLine();
        }
        // Shiyu's code
        public UndirectedGraph <TVertex, TEdge> Clone()
        {
            var g     = new UndirectedGraph <TVertex, TEdge>(this.allowParallelEdges);
            var nodes = this.adjacentEdges.Keys;

            foreach (var n in nodes)
            {
                g.AddVertex(n);
            }
            var edgesList = this.adjacentEdges.Values;

            foreach (var edges in edgesList)
            {
                foreach (var e in edges)
                {
                    g.AddEdge(e);
                }
            }

            return(g);
        }