Реализации алгоритмов/Поиск в ширину: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 8:
== [[Python]] ==
<source lang="python">
adj = [
# [1,3], # 0
[0,3,4,5], # 1
Строка 17 ⟶ 18 :
]
level = [-1] * len(adj)
# def bfs(s):
level[s] = 0
# уровень начальной вершины stack = [s]
# добавляем начальную вершину в очередь while stack:
# пока там что-то есть v = stack.pop(0)
# извлекаем вершину for w in adj[v]:
# запускаем обход из вершины v if level[w] is -1:
# проверка на посещенность stack.append(w)
# добавление вершины в очередь level[w] = level[v] + 1
# подсчитываем уровень вершины for i in range(len(adj)):
if level[i] is -1:
bfs(i)
# на случай, если имеется несколько компонент связности print(level[2])
# уровень вершины 2 </source>
|