void DFS (int src){
for(int i = 0 ; i < V ; i++){
visited [i] = false;
path [i] = -1;
}
stack <int> s;
visited [src] = true;
s.push (src);
while (! s.empty( )){
int u = s.top();
s.pop ();
for (int i = 0; i < graph [u].size () ; i++ ){
int v = graph [u] [i ] ;
if (! visited [v] ) {
visited [v] = true;
s.push (v);
path [v] = u;
}
}
}
}
Anh chị giải thích họ em thuật toán này với ạ