Реализации алгоритмов/Поиск в ширину: различия между версиями
Содержимое удалено Содержимое добавлено
RomanSuzi (обсуждение | вклад) Скопировано из w:Поиск в ширину |
|||
Строка 8:
== [[Python]] ==
<source lang="python">
adj = [ # список смежности
def BFS(s,Adj):▼
[0,3,4,5], # 1
[1,2], # 4
]
level = [-1] * len(adj) # список уровней вершин
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 # подсчитываем уровень вершины
bfs(0) # обход из вершины 0
print(level[2]) # уровень вершины 2
</source>
|