Как определить зацикливание в ориентированном графе
Проблема: дан ориентированный граф. Необходимо проверить содержит ли граф цикл или нет
Алгоритм
1. Создайте граф, используя заданное количество ребер и вершин (условно, если граф еще не создан)
2. Создайте рекурсивную функцию, которая инициализирует текущий индекс или вершину, а также создает стек рекурсии
3. Отметьте текущий узел как посещенный, а также отметьте индекс в стеке рекурсии
4. Найдите все вершины, которые примыкают к данному узлу(но еще ни разу не посещались). Рекурсивно вызывайте данную функцию для этих вершин.
5. Если рекурсивный вызов вернет - true - значит это и есть истина и ваш финальный ответ. Кстати, если соседние вершины уже присутствуют в стеке рекурсии - вы можете сразу вернуть true
Data Science: Алгоритмы и Структуры данных
Post #4850
508