using System; using System.Collections.Generic; namespace Graph { public class Graph where T : IComparable { public List> Vertices { get; set; } = new List>(); public Graph() { } public Graph(List> vertices) { Vertices = vertices; } public void AddEdge(Edge edge) { Vertex vertex = Vertices.Find(u => u.Id == edge.U); if (vertex == null) { Vertices.Add(vertex = new Vertex(edge.U)); vertex = Vertices[Vertices.Count - 1]; } vertex.Edges.Add(edge); } public override string ToString() => $"{String.Join("\n", Vertices)}"; } }