using System.Collections.Generic; /// /// Граф /// public class Graph { /// /// Список вершин графа /// public List Vertices { get; } /// /// Конструктор /// public Graph() { Vertices = new List(); } /// /// Добавление вершины /// /// Имя вершины public void AddVertex(string vertexName) { Vertices.Add(new GraphVertex(vertexName)); } /// /// Поиск вершины /// /// Название вершины /// Найденная вершина public GraphVertex FindVertex(string vertexName) { foreach (var v in Vertices) { if (v.Name.Contains(vertexName)) { return v; } } return null; } /// /// Добавление ребра /// /// Имя первой вершины /// Имя второй вершины /// Вес ребра соединяющего вершины public void AddEdge(string firstName, string secondName, int weight) { var v1 = FindVertex(firstName); var v2 = FindVertex(secondName); if (v2 != null && v1 != null) { v1.AddEdge(v2, weight); v2.AddEdge(v1, weight); } } }