Поиск в глубину
Материал из Википедии — свободной энциклопедии
Поиск в глубину — один из методов обхода графа. Кратко суть алгоритма можно изложить так: для каждой непройденной вершины необходимо найти все непройденные смежные вершины и повторить поиск для них.
[править] Алгоритм поиска в глубину
Пусть задан граф G = (V, E), где V — множество вершин графа, E — множество ребер графа. Предположим, что в начальный момент времени все вершины графа окрашены в белый цвет. Выполним следующие действия:
- Из множества всех белых вершин выберем любую вершину, обозначим её v1.
- Выполняем для нее процедуру DFS(v1).
- Перекрашиваем ее в черный цвет.
- Повторяем шаги 1-3 до тех пор, пока множество белых вершин не пусто.
Процедура DFS (параметр — вершина u∈V(G))
- Перекрашиваем вершину u в серый цвет.
- Для всякой вершины w, смежной с вершиной u, выполняем следующие два шага:
- Если вершина w окрашена в белый цвет, выполняем процедуру DFS(w).
- Окрашиваем w в черный свет.