24 2. Поиск в графе
Пусть v — произвольная вершина. Обозначим через ˆv поддерево d-
дерева с корнем v. Для произвольного непустого множества X ⊆ ˆv через
V B(X, v) будем обозначать множество всех таких вершин w, что w > v
и для некоторой вершины x ∈ X существует обратное ребро xw. Если
X одноэлементно, т. е. X = {x}, то вместо V B({x}, v) будем писать
V B(x, v).
Лемма 3. Пу сть t, v, s — вершины графа G, причем t — отец, а s
— сын вершины v. Ребра e = vt и f = vs лежат на общем цикле тогда
и только тогда, когда V B(ˆs, v) 6= ∅.
Доказательство. Предположим, что ребра e = vt и f = vs лежат
на общем цикле C, имеющем вид u
1
, . . . , u
p
, u
1
. Можно считать, что
u
1
= v, u
2
= s, u
p
= t. Найдется наименьшее число q > 2 такое, что u
q
66
66 s. Ясно, что q 6 p и ребро u
q−1
u
q
является обратным, следовательно,
вершины u
q−1
и u
q
сравнимы в d-дереве. Поскольку u
q−1
< s, имеем
u
q
> v. Учитывая, что C — цикл и u
1
= v, получаем неравенство u
q
> t.
Таким образом, u
q
∈ V B(ˆs, v), поэтому V B(ˆs, v) 6= ∅.
Обратно, пусть w ∈ V B(ˆs, v). Тогда w > t, и существует обратное
ребро xw, причем x 6 s. Ясно, что x — потомок вершины w в d-дереве.
Поэтому существует простая (w, x)-цепь P, причем P содержит ребра
vt и vs. Добавляя к цепи P ребро xw, получим требуемый цикл.
Лемма 4. Вершина v является точкой сочленения тогда и только
тогда, когда выполняется одно из двух следующих условий:
1) v — корень d-дерева, имеющий не менее двух сыновей;
2) v не является корнем и для некоторого сына s вершины v мно-
жество V B(ˆs, v) пусто.
Доказательство. Пусть v — точка сочленения графа G. Тогда v —
общая вершина различных блоков. Следовательно, существуют верши-
ны x, y, обе смежные с v и такие, что vx 6≈ vy.
Предположим, что v — корень d-дерева. Тогда x, y, очевидно, явля-
ются потомками v. В силу леммы 2 существуют сыновья s
1
, s
2
вершины
v такие, что vs
1
≈ vx, vs
2
≈ vy. Поскольку vx 6≈ vy, имеем vs
1
6≈ vs
2
.
Отсюда, в частности, следует, что s
1
6= s
2
.
Пусть v не является корнем d-дерева, и t — отец вершины v. Нетрудно
понять, что либо vt 6≈ vx, либо vt 6≈ vy. Без ограничения общности
можно считать, что vt 6≈ vx. Применение леммы 1 показывает, что x
потомок вершины v. В силу леммы 2 существует такой сын s вершины v,