RemoveNeighborlessVerticesFromGraph
(
IGraph oGraph
)
{
Debug.Assert(oGraph != null);
AssertValid();
IVertexCollection oVertices = oGraph.Vertices;
List<IVertex> oNeighborlessVertices = new List<IVertex>();
foreach (IVertex oVertex in oVertices)
{
Boolean bIsNeighborless = true;
foreach (IEdge oIncidentEdge in oVertex.IncidentEdges)
{
if (oIncidentEdge.GetAdjacentVertex(oVertex) != oVertex)
{
bIsNeighborless = false;
break;
}
}
if (bIsNeighborless)
{
oNeighborlessVertices.Add(oVertex);
}
}
foreach (IVertex oNeighborlessVertex in oNeighborlessVertices)
{
oVertices.Remove(oNeighborlessVertex);
}
return (oNeighborlessVertices);
}