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