Можем ли мы обнаружить циклы в ориентированном графе, используя структуру данных Union-Find? - PullRequest
0 голосов
/ 12 апреля 2020

Я знаю, что можно обнаружить циклы в прямых графах, используя DFS и BFS. Я хочу знать, можем ли мы обнаружить циклы в ориентированных графах, используя Union-Find или нет?

  • Если да, то как? и
  • Если мы не можем, то почему?

1 Ответ

0 голосов
/ 25 апреля 2020

Нет, мы не можем использовать union-find для обнаружения циклов в ориентированном графе. Это связано с тем, что ориентированный граф не может быть представлен с использованием несвязанного множества (структуры данных, в которой выполняется поиск объединения).

Когда мы говорим «объединение b», мы не можем разобрать направление ребра

  1. будет б? (или)
  2. собирается ли b?

Но в случае неупорядоченных графов каждый связанный компонент эквивалентен набору. Таким образом, union-find может использоваться для обнаружения цикла. Всякий раз, когда вы пытаетесь выполнить объединение двух вершин, принадлежащих одному и тому же связанному компоненту, мы можем сказать, что цикл существует.

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