コード例 #1
0
ファイル: Graph.cs プロジェクト: Hirutsu/CSharp
 public void Dijkstr(int v)
 {
     graph.NovSet();                     //помечаем все вершины графа как непросмотренные
     int[]  p;
     long[] d = graph.Dijkstr(v, out p); //запускаем алгоритм Дейкстры
                                         //анализируем полученные данные и выводим их на экран
     Console.WriteLine("Длина кратчайшие пути от вершины {0} до вершины", v);
     for (int i = 0; i < graph.Size; i++)
     {
         if (i != v)
         {
             Console.Write("{0} равна {1}, ", i, d[i]);
             Console.Write("путь ");
             if (d[i] != int.MaxValue)
             {
                 Stack items = new Stack();
                 graph.WayDijkstr(v, i, p, ref items);
                 while (!items.IsEmpty)
                 {
                     Console.Write("{0} ", items.Pop());
                 }
             }
         }
         Console.WriteLine();
     }
 }