Supongo que te refieres a cómo realizar el primer recorrido en profundidad usando listas de adyacencia.
El código general para esto tiene el siguiente aspecto:
visitado = {}; // establece el almacenamiento de los nodos que se han visitado
- ¿Qué es un algoritmo de hashing seguro?
- Cómo resolver esta recurrencia T (n) = T (sqrt (n)) + log_2 n
- ¿Qué es el conocimiento estructurado?
- ¿Hay algún tipo de estrategias para resolver problemas en estática?
- Cómo escribir un algoritmo comercial usando un promedio móvil exponencial
función depth_first_traversal (nodo) {
visitado.add (nodo);
para adyacente_nodo en node.adjacency_list {
si el adyacente_nodo no está en {
profundidad_primera_versión (adyacente_nodo);
}
}
}
Esto realizaría un primer recorrido completo de profundidad de cada nodo accesible desde el primer node
que se depth_first_traversal(node)
.
Para hacer algo realmente útil, puede agregar algo de “procesamiento” para cada nodo en la línea 5. Por ejemplo, si desea buscar un nodo en particular, puede verificar si el nodo actual coincide con el objetivo que está buscando. O si quisiera resumir los valores de cada nodo, podría tener sum += node.value
cada vez que visite un nuevo nodo.