Помогите дописать программу! Поиск цикла в ориентированном графе. Граф задан весовой матрицей. Смысл метода такой: сначала все вершины графа белые(т.е. не обработанные); из каждой вершины, в которую мы ещё ни разу не приходили, запустим поиск в глубину, который при входе в вершину будет красить её в серый цвет, а при выходе - в чёрный. 99 - нет прямого пути между двумя вершинами, 0 - нет пути из вершины в саму себя. Короче, 99 и 0 то же самое, что 0 в матрице смежности.
| Код | public void SCycle(int v,int[,] W) { Color[v] = 1; for (int i = 0; i < Size; i++) { if ((W[v, i] != 99) && (W[v, i] != 99) && (Color[i] == 0)) SCycle(i, W); else if (Color[i] == 1) Console.WriteLine("цикл есть"); else Console.WriteLine("Цикла нет"); } Color[v] = 2; }
|
Если что не правильно, то подскажите что. Спасибо. |