В графе узлов определите, приведет ли уничтожение одного узла к двум несвязанным графам - PullRequest
1 голос
/ 09 марта 2019

Мне нужно это для игры, которую я пишу на Голанге.

У меня есть группа узлов, каждый из которых содержит списки других узлов, так что между любыми двумя узлами существует путь.

(на самом деле объекты представляют собой прямоугольники разных размеров, выложенные черепицей)

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

(т. Е. Приведет ли потеря данного прямоугольника к двум неподключенным плиточным областям или он останется одной мозаичной областью)

Я надеюсь, что этот тест будет выполнен максимально эффективно, потому что мой код должен будет выполнить этот тест на одном множестве различных узлов, столько раз, сколько это возможно, как часть спуска в игровое дерево алфавита двигатель.

Большое спасибо за любую помощь!

1 Ответ

2 голосов
/ 09 марта 2019

Существует линейный алгоритм времени, чтобы найти двусвязные компоненты графа .Узлы артикуляции - это те узлы, удаление которых приведет к отключению графа.

...