Алгоритм Дейкстры - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Нужна Ваша помощь. Мне нужно использовать алгоритм Дейкстры (поиск наименьшего расстояния в графе), и я нашел код :http://habrahabr.ru/blogs/personal/63347/ Однако никак не могу понять, как его по-человечески использовать (в смысле, метод Main) Я делаю 2 массива (для вершин и ребер), потом запускаю AlgorithmRun, но собственно результата так и не получаю. Понимаю, что вопрос выглядит дико тупым, однако мой "замыленный" взгляд так и не выдает ошибки. Мне бы очень помог какой-нибудь простенький пример. Заранее спасибо...

Решение задачи: «Алгоритм Дейкстры»

textual
Листинг программы
  1.  static void Main(string[] args)
  2.     {
  3.         Point[] v = new Point[6];
  4.         v[0] = new Point(0, false, "F"); //в любой из точек меняешь значение на 0 (в остальных оставляешь 9999) (начало)
  5.         v[1] = new Point(9999, false, "A");
  6.         v[2] = new Point(9999, false, "B");
  7.         v[3] = new Point(9999, false, "C");
  8.         v[4] = new Point(9999, false, "D");
  9.         v[5] = new Point(9999, false, "E");
  10.         Rebro[] rebras = new Rebro[10];
  11.         rebras[0] = new Rebro(v[0], v[2], 8);
  12.         rebras[1] = new Rebro(v[0], v[3], 4);//FC
  13.         rebras[2] = new Rebro(v[0], v[1], 9);//FA
  14.         rebras[3] = new Rebro(v[2], v[3], 7);//bc
  15.         rebras[4] = new Rebro(v[2], v[5], 5);//be
  16.         rebras[5] = new Rebro(v[3], v[5], 5);//ce
  17.         rebras[6] = new Rebro(v[1], v[5], 6);//ae
  18.         rebras[7] = new Rebro(v[1], v[4], 5);//ad
  19.         rebras[8] = new Rebro(v[3], v[4], 4);//cd
  20.         rebras[9] = new Rebro(v[2], v[4], 7);//bd
  21.         DekstraAlgorim da = new DekstraAlgorim(v, rebras);
  22.         da.AlgoritmRun(v[0]);                                               //выбираешь в каком именно ты поставил 0 (начало)
  23.         List<string> b = PrintGrath.PrintAllMinPaths(da);
  24.         for (int i = 0; i < b.Count; i++)                                 // b.Count меняешь на цифру до которого поинта считать (конец)
  25.             Console.WriteLine(b[i]);
  26.         Console.ReadKey(true);
  27.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы