Использование обхода в глубину для проверки связности — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «Небольшая модификация алгоритма обхода в глубину позволяет проверить связность неориент…»)
(нет различий)

Версия 05:39, 9 ноября 2010

Небольшая модификация алгоритма обхода в глубину позволяет проверить связность неориентированного графа. Один из вариантов алгоритма заключается в том, чтобы считать сколько вершин мы посетили во время обхода.

 string color[];         //изначально массив color заполнен значениями white.
 int count = n;          //счётчик количества вершин; изначально равен количеству вершин в графе
 bool if_connected()    
   dfs(0);               //запуск от  какой-то вершины
   if(count == 0)
     return true;
   else
     return false;
 
 int dfs(int u)         //процедура обхода в глубину. запуск от номера вершины
     for(v: uv - ребро)
     if(color[v] == white)
       dfs(v);
   color[u] = black;
   count--;