public void AddVertex(long id, T data) { if (AllVertex.ContainsKey(id)) { return; } Vertex <T> v = new Vertex <T>(id, data); AllVertex.Add(id, v); NumberOfVertices++; }
/// <summary> /// /// </summary> /// <param name="vertex"></param> public void AddVertex(Vertex <T> vertex) { if (AllVertex.ContainsKey(vertex.Id)) { return; } AllVertex.Add(vertex.Id, vertex); foreach (var e in vertex.GetAdjEdges()) { AllEdges.Add(e); NumberOfEdges++; } NumberOfVertices++; }
public void AddEdge(long id1, long id2, int weight) { Vertex <T> v1 = null; Vertex <T> v2 = null; if (!AllVertex.ContainsKey(id1)) { v1 = new Vertex <T>(id1); AddVertex(v1); } else { v1 = AllVertex[id1]; } if (!AllVertex.ContainsKey(id2)) { v2 = new Vertex <T>(id2); AddVertex(v2); } else { v2 = AllVertex[id2]; } Edge <T> e = new Edge <T>(v1, v2, IsDirected, weight); AllEdges.Add(e); v1.AddAdjacentVertex(e, v2); if (!IsDirected) { v2.AddAdjacentVertex(e, v1); } NumberOfEdges++; }