private void DepthFirstSearchOrdered(LinkedList <IVertex <T> > sortedByFinishingTime) { foreach (var vertex in vertices.OfType <VertexDFS <T> >()) { vertex.Color = Color.White; vertex.Predecessor = null; } time = 0; foreach (var vertex in sortedByFinishingTime.OfType <VertexDFS <T> >()) { if (vertex.Color == Color.White) { DepthFirstVisit(vertex as VertexDFS <T>); } } }