ru24.pro
«Фрилансим»
Сентябрь
2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Написать алгоритм обхода графа

0
Привет,

Нужен алгоритм на Java.
Есть направленный граф, представленный в виде совокупности номеров вершин (1,2) (2,5) (3,6) и т.д. Первый элемент - начало, второй - конец. Вершина в себя же (1,1) идти не может.
Граф строится постепенно. Нужна функция, при каждом добавлении пары проверяющая, не приведет ли это к кольцу (возврат false) или true, если не приведет.
Пример: уже есть (1,2)(2,3), пытаемся добавить (3,1) - результат false. Если (1,3) - то true.
Граф может содержать до 2 тыс вершин, поэтому рекурсию использовать не надо :) Критерий выполнения работы - отработка алгоритма на графе с 2 тысячами вершин.
Заполнение графа происходит последовательно в 1 потоке.