algorithm
Gráficos de travesías
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