Cómo probar la profundidad del primer recorrido utilizando listas de adyacencia

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

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.

More Interesting

¿Existe un algoritmo para salir de laberintos bidimensionales?

Cómo convertirse en un maestro en programación dinámica

¿Qué algoritmo debo usar para la generación de código para mi AST?

¿Qué son los pseudocódigos para GCD?

¿Puedo leer Introducción a las estructuras de datos de Cormen como un principiante completo?

¿Cómo puede alguien calcular la complejidad de este algoritmo?

He estado haciendo programación competitiva durante años, pero ahora me encuentro despistado en mi clase de Algoritmos. ¿Qué tengo que hacer?

¿Obtuviste un trabajo de ingeniería de software al aprender algoritmos a través de MOOC?

¿Existen algoritmos que puedan determinar la convergencia o la falta de ella para cualquier serie arbitraria que se pueda expresar en notación de suma estándar?

¿Cómo se puede calcular el número de inversiones entre dos matrices en O (N log N)?

¿Cuál es el algoritmo más difícil que has implementado? ¿Por qué fue difícil? ¿Cuánto tiempo te llevó?

¿Qué algoritmo es usado por la función Java () de la búsqueda de subcadenas?

¿Cuáles son las mejores estructuras de datos para un índice espacial utilizado para averiguar en qué región de un espacio delimitado cae un nuevo punto dado?

¿Cuál es una buena manera de ordenar temas en términos de qué aprender primero para la programación competitiva?

¿Cuáles son los diferentes enfoques que uno puede tomar para mejorar la precisión dado un conjunto de datos además de probar diferentes algoritmos en el aprendizaje automático?