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