Cambios en la salida de búsqueda de profundidad en cada ejecución

Saurabh

Tengo el siguiente código para la primera búsqueda en profundidad:

def dfs(graph, vertex):
    visited = set()
    stack = [vertex]
    while stack:
        vertex = stack.pop()
        if vertex not in visited:
            visited.add(vertex)
            stack.extend(graph[vertex])
    return visited

def main():
    test_graph = {
        'A': ['B', 'C'],
        'B': ['A', 'D', 'E'],
        'C': ['A', 'F'],
        'D': ['B'],
        'E': ['B', 'F'],
        'F': ['C', 'E']
    }
    print(dfs(test_graph, 'A'))

if __name__ == '__main__':
    main()

En cada ejecución obtengo un resultado diferente.

¿Hay algún cambio que pueda hacer para que la salida siempre comience con el valor de vertex(en este caso, A )?

Adam.Er8

en Python, a setno está ordenado. puede usar collections.OrderedDictpara mantener las claves en orden de inserción, mientras que también tiene not intrabajo en O (1) como en un conjunto:

from collections import OrderedDict

def dfs(graph, vertex):
    visited = OrderedDict()
    stack = [vertex]
    while stack:
        vertex = stack.pop()
        if vertex not in visited:
            visited[vertex] = True
            stack.extend(graph[vertex])
    return list(visited.keys())

def main():
    test_graph = {
        'A': ['B', 'C'],
        'B': ['A', 'D', 'E'],
        'C': ['A', 'F'],
        'D': ['B'],
        'E': ['B', 'F'],
        'F': ['C', 'E']
    }
    print(dfs(test_graph, 'A'))

if __name__ == '__main__':
    main()

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cambios en la salida de búsqueda de profundidad en cada ejecución

Resultado inesperado en la búsqueda de profundidad primero

Resultado inesperado en la búsqueda de profundidad primero

¿Encuentra la profundidad total de cada nodo en un árbol de búsqueda binaria de forma recursiva?

¿Por qué la complejidad espacial de la búsqueda en profundidad no se expresa como O (n)?

¿Cuál es el número total de nodos generados por la búsqueda en profundidad?

Búsqueda en profundidad para encontrar la profundidad máxima de un árbol binario

¿Por qué error en tiempo de ejecución en esta función C ++ profundidad primera búsqueda?

Mejor que la solución de búsqueda en profundidad para el problema de 'subir escaleras' de LeetCode

¿Cómo realizar un seguimiento de la profundidad en la amplitud de la primera búsqueda?

¿Cómo realizar un seguimiento de la profundidad en la amplitud de la primera búsqueda?

¿Cómo puedo rastrear la profundidad de cada vértice en una primera búsqueda de amplitud de una matriz de adyacencia? (Java)

¿Cómo puedo rastrear la profundidad de cada vértice en una primera búsqueda de amplitud de una matriz de adyacencia? (Java)

Cómo usar la opción de búsqueda en la salida HTML de Powershell

Cómo usar la opción de búsqueda en la salida HTML de Powershell

Seguimiento de la profundidad en una primera búsqueda de amplitud de un árbol dirigido

Campos de búsqueda de salida en el serializador para la relación OneToOne

Búsqueda de PowerShell para archivos específicos: resultados diferentes en cada ejecución

haciendo que los archivos de salida se creen en cada carpeta después de la ejecución en paralelo

Ejecución de la suma de salida en orden incorrecto

Python: enfoque no recursivo de búsqueda en profundidad primero

Desbordamiento de pila en profundidad Primera búsqueda

Python: enfoque no recursivo de búsqueda en profundidad primero

Algoritmo de primera búsqueda en profundidad no recursiva

Propiedad de gráfico dirigido / primera búsqueda en profundidad

¿Profundidad primer algoritmo de búsqueda saltando espacios en laberinto?

Profundidad primer algoritmo de búsqueda en Python

¿Profundidad primer algoritmo de búsqueda saltando espacios en laberinto?

Operador de extensión de JavaScript para búsqueda en profundidad