Алгоритм Дейкстры - C#
Формулировка задачи:
Доброго времени суток! Нужна Ваша помощь. Мне нужно использовать алгоритм Дейкстры (поиск наименьшего расстояния в графе), и я нашел код :http://habrahabr.ru/blogs/personal/63347/
Однако никак не могу понять, как его по-человечески использовать (в смысле, метод Main)
Я делаю 2 массива (для вершин и ребер), потом запускаю AlgorithmRun, но собственно результата так и не получаю. Понимаю, что вопрос выглядит дико тупым, однако мой "замыленный" взгляд так и не выдает ошибки. Мне бы очень помог какой-нибудь простенький пример. Заранее спасибо...
Решение задачи: «Алгоритм Дейкстры»
textual
Листинг программы
- static void Main(string[] args)
- {
- Point[] v = new Point[6];
- v[0] = new Point(0, false, "F"); //в любой из точек меняешь значение на 0 (в остальных оставляешь 9999) (начало)
- v[1] = new Point(9999, false, "A");
- v[2] = new Point(9999, false, "B");
- v[3] = new Point(9999, false, "C");
- v[4] = new Point(9999, false, "D");
- v[5] = new Point(9999, false, "E");
- Rebro[] rebras = new Rebro[10];
- rebras[0] = new Rebro(v[0], v[2], 8);
- rebras[1] = new Rebro(v[0], v[3], 4);//FC
- rebras[2] = new Rebro(v[0], v[1], 9);//FA
- rebras[3] = new Rebro(v[2], v[3], 7);//bc
- rebras[4] = new Rebro(v[2], v[5], 5);//be
- rebras[5] = new Rebro(v[3], v[5], 5);//ce
- rebras[6] = new Rebro(v[1], v[5], 6);//ae
- rebras[7] = new Rebro(v[1], v[4], 5);//ad
- rebras[8] = new Rebro(v[3], v[4], 4);//cd
- rebras[9] = new Rebro(v[2], v[4], 7);//bd
- DekstraAlgorim da = new DekstraAlgorim(v, rebras);
- da.AlgoritmRun(v[0]); //выбираешь в каком именно ты поставил 0 (начало)
- List<string> b = PrintGrath.PrintAllMinPaths(da);
- for (int i = 0; i < b.Count; i++) // b.Count меняешь на цифру до которого поинта считать (конец)
- Console.WriteLine(b[i]);
- Console.ReadKey(true);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д