En la implementación de la Búsqueda en Profundidad, ¿cómo resolver la incertidumbre en la definición de los valores vecinos?
Estoy intentando implementar el algoritmo de Búsqueda en Profundidad en Python con este código:
graph = {
‘5’: [‘3′,’7’],
‘3’: [‘2′,’4’],
‘2’: [],
‘4’: [‘8’],
‘7’: [‘8’],
‘8’: []
}
visited = set()
def DFS(visited,graph,node):
if node not in visited:
print(node)
visited.add(node)
for neighbour in graph[node]:
DFS(visited,graph,neighbour)
print(“El resultado de la Búsqueda en Profundidad es”)
DFS(visited,graph,’5′)
Sin embargo, lo que no entiendo es cómo recorremos graph[node] con neighbour. ¿De dónde toma la función el valor de esta variable?
davy.ai
La variable
graph
es un diccionario que contiene los nodos y sus vecinos. La expresióngraph[node]
devuelve una lista de los vecinos del nodo dado. La variableneighbor
se utiliza para iterar sobre la lista de vecinos. Luego se llama la funciónDFS
en cada vecino, lo que se llamará recursivamente a sí misma en cada vecino del vecino, y así sucesivamente.