/// <summary> /// Удаляет вершину из графа. /// </summary> /// <param name="DelVertex">Вершина, которую требуется удалить.</param> public void RemoveVertex(Vertex DelVertex) { try { OnVertexRemoved?.Invoke(this, DelVertex); List <Edge> fr = new List <Edge>(); foreach (Edge Incident in NeihbourEdges(DelVertex)) { fr.Add(Incident); } foreach (Edge e in fr) { OnEdgeRemoved?.Invoke(this, e); edges.Remove(e); } foreach (Vertex Incident in DelVertex.Incidented()) { Incident.Vertexes.Remove(DelVertex); } vertexes.Remove(DelVertex); OnChange?.Invoke(this); } catch (Exception e) { //throw new Exception(e.Message); } }
/// <summary> /// Удаляет вершину из графа по указанному индексу /// </summary> /// <param name="DelIndex">Индекс вершины, которую требуется удалить.</param> public void RemoveVertex(Int32 DelIndex) { try { foreach (Vertex Incident in vertexes[DelIndex].Incidented()) { OnEdgeRemoved?.Invoke(this, new Edge(Incident, vertexes[DelIndex])); Incident.Vertexes.Remove(vertexes[DelIndex]); } OnVertexRemoved?.Invoke(this, vertexes[DelIndex]); vertexes.Remove(vertexes[DelIndex]); OnChange?.Invoke(this); } catch (Exception e) { throw new Exception(e.Message); } }