void Graph::DFS_Visit(vertex_struct aVertex) { aVertex.Color = "GRAY"; mTime = mTime + 1; aVertex.Dist = mTime; for (list<vertex_struct *>::iterator it = aVertex.Edges.begin(); it != aVertex.Edges.end(); it++) { if(it->Color.compare("WHITE") == 0) { it->Pred = &aVertex; DFS_Visit(&it); } aVertex.Color = "BLACK"; aVertex.Finish = mTime; mStack.push(aVertex); mTime = mTime + 1; } }