algorithm
Diagrammdurchquerungen
Suche…
Tiefe erste Suche Durchlauffunktion
Die Funktion nimmt das Argument des aktuellen Knotenindex, der Adjazenzliste (in diesem Beispiel in einem Vektor von Vektoren gespeichert) und einem Booleschen Vektor, um zu verfolgen, welcher Knoten besucht wurde.
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow