algorithm
Traversées graphiques
Recherche…
Depth First Search Fonction traversale
La fonction prend l'argument de l'index de nœud actuel, la liste de contiguïté (stockée dans le vecteur de vecteurs dans cet exemple) et le vecteur de booléen pour garder la trace du nœud qui a été visité.
void dfs(int node, vector<vector<int>>* graph, vector<bool>* visited) {
// check whether node has been visited before
if((*visited)[node])
return;
// set as visited to avoid visiting the same node twice
(*visited)[node] = true;
// perform some action here
cout << node;
// traverse to the adjacent nodes in depth-first manner
for(int i = 0; i < (*graph)[node].size(); ++i)
dfs((*graph)[node][i], graph, visited);
}
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow