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