<
# Definimos una función para realizar la búsqueda en amplitud.
def bfs(graph, start):
# Creamos un conjunto para llevar un registro de los nodos visitados.
visited = set()
# Inicializamos una lista como cola con el nodo de inicio.
queue = [start]
while queue:
# Sacamos el primer elemento de la lista como si fuera una cola.
node = queue.pop(0)
if node not in visited:
# Imprimimos el nodo visitado (puedes hacer otra cosa con él).
print(node)
visited.add(node) # Agregamos el nodo a la lista de visitados.
# Agregamos los nodos vecinos no visitados a la cola.
for neighbour in graph[node]:
if neighbour not in visited:
queue.append(neighbour)
# Creamos un grafo representado como un diccionario de listas de adyacencia.
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
# Llamamos a la función BFS desde el nodo de inicio 'A'.
bfs(graph, 'A')
>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?