# точкой сочленения,

точкой сочленения, если существуют вершины u и v, отличные от t, такие, что каждый путь из u в v (предполагаем, что существует по крайней мере один) проходит через вершину с номером t. Наша задача - найти точки сочленения и двусвязные компоненты графа. Основная идея. Есть двусвязные компоненты G1, G2, G3, G4 и G5 и точки сочленения 1, 2, 3. Осуществляем поиск в глубину из вершины t, принадлежащей G1. Мы можем перейти из G1 в G2, проходя через вершину 1. Но по свойству поиска в глубину все ребра G2 должны быть пройдены до того, как мы вернемся в 1. Поэтому G2 состоит в точности из ребер, которые проходятся между заходами в вершину 1. Для других чуть сложнее. Из G1 попадаем в G3, затем в G4 и G5. Предысторию процесса прохождения ребер будем хранить в стеке. Тогда при возвращении в G4 из G5 через вершину 3 все ребра G5 будут на верху стека. После их удаления, то есть вывода двусвязной компоненты из стека, на верху стека будут ребра G4, и в момент прохождения вершины 2 мы можем их опять

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа
бесплатные строительные доски объявлений москвы