Изменения

Перейти к: навигация, поиск

Обход в ширину

59 байт убрано, 05:38, 24 января 2011
Реализация
Приведенная ниже процедура поиска в ширину '''BFS''' предполагает, что входной граф <tex>G = (V, E)</tex> представлен при помощи списков смежности. Кроме того, поддерживаются дополнительные структуры данных в каждой вершине графа. Цвет каждой вершины <tex>u \in V</tex> хранится в переменной <tex>color[u]</tex>, а предшественник — в переменной <tex>p[u]</tex>. Если предшественника у <tex>u</tex> нет, то <tex>p[u] =</tex> NIL. Расстояние от <tex>s</tex> до вершины <tex>u</tex>, вычисляемое алгоритмом, хранится в поле <tex>d[u]</tex>. Алгоритм использует очередь <tex>Q</tex> для работы с множеством серых вершин.
'''BFS'''(<tex>G</tex>, <tex>s</tex>)
1 '''for''' (для) каждой вершины <tex>u \in V[G]</tex>
2 '''do''' <tex>color[u] \leftarrow</tex> WHITE
3 <tex>d[u] \leftarrow \mathcal {1}</tex>
10 '''while''' <tex>Q \ne \varnothing</tex>
11 '''do''' <tex>u \leftarrow</tex> DEQUEUE(<tex>Q</tex>)
12 '''for''' (для) каждой <tex>v \in Adj[u]</tex>
13 '''do''' '''if''' <tex>color[v] =</tex> WHITE
14 '''then''' <tex>color[v] \leftarrow</tex> GRAY
Анонимный участник

Навигация