Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Графы


Автор: Kostja 23.3.2011, 18:15
Помогите дописать программу! Поиск цикла в ориентированном графе. Граф задан весовой матрицей. Смысл метода такой: сначала все вершины графа белые(т.е. не обработанные); из каждой вершины, в которую мы ещё ни разу не приходили, запустим поиск в глубину, который при входе в вершину будет красить её в серый цвет, а при выходе - в чёрный. 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;
        }

Если что не правильно, то подскажите что. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)