Что-то должно быть неправильно в моем понимании алгоритма. Как это должно работать на следующем графике.Окончание алгоритма Дейкстры
Как я понимаю, если начальная вершина равна (5), тогда алгоритм будет идти, 5-> 4-> 1, а затем прекратится. Вершина (2) по-прежнему будет иметь бесконечность, как ее вес.
от wikipedia:
Если наименьшее ориентировочное расстояние между узлами в невидимом множестве бесконечно (при планировании полного обхода), то остановитесь. Алгоритм завершен.
Я думаю, что мое замешательство было в очереди. Я думал, что Queue содержит только вершины, доступные из текущей вершины. Итак, когда я добрался до вершины (1), тогда очередь была пуста. – Justin