Esempio n. 1
0
 /// <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);
     }
 }
Esempio n. 2
0
 /// <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);
     }
 }