algorithm
Grafiek doorkruisen
Zoeken…
Diepte Eerste Zoeken doorkruisfunctie
De functie neemt het argument van de huidige knooppuntindex, aangrenzende lijst (opgeslagen in vector van vectoren in dit voorbeeld) en vector van boolean om bij te houden welke knoop bezocht is.
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow