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