Buscar..


Profundidad de la primera búsqueda de la función transversal

La función toma el argumento del índice de nodo actual, la lista de adyacencia (almacenada en el vector de vectores en este ejemplo) y el vector de booleano para realizar un seguimiento de qué nodo ha sido visitado.

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow