Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 35-66 / 53.Двусвязность. Алгоритм определения двусвязности графа

..pdf
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
220.15 Кб
Скачать

53. Двусвязность. Алгоритм определения двусвязности графа.

Если граф не одержит точек разделения, то он называется двусвязным или неразделимым. Максимальный подграф называется двусвязной компонентой или блоком. Для определения точек сочленения – последовательно убирать точки и анализировать, распадается ли граф на несвязные компоненты.

Алгоритм BICONNECTIVITY(G)

1.num ←0, stack ←Ø

2.for each v V do Num[v] ←0, L[v] ←0

3.for each v V do

4.if Num[v]=0 then

Block(v,a)

1.num ← num+1

2.Num[v] ←num

3.L[v] ←num

4.for each w V, смежные c V do

5.if Num[w]=0 then

6.stack ←(v,w)

7.Block(w,v)

8.L[v] ←Min(L[v],L[w])

9.if L[w]≥Num[v] then

10.repeat

11.(v1, w1) ←stack

12.printf “(v1,w2)”

13.until(v1, w1) = (v,w)

14.else if(Num[w] ←Num[v]) and (w≠u) then

15.stack

16.L[v] ←Min(L[v], Num[v])

17.end if

18.end if

19.end if

20.end for

Метка вершины сочленения получает минимальный номер из всех вершин блока. Вычислительная сложность: О(n+m)