Почему алгоритм Дейкстры для поиска кратчайшего пути между городами выводит всегда расстояние 0?

Почему в итоговом выводе расстояние между городами постоянно равно нулю, несмотря на то, что алгоритм нахождения кратчайшего пути работает правильно? В файле graph.txt данные представлены в следующем формате:<br/> Moscow Saintpetersburg 700<br/> Saintpetersburg Novgorod 400<br/> Moscow Novosibirsk 3000<br/> Novgorod Volgograd 1200<br/> Volgograd Sochi 900<br/> Как исправить эту проблему?
  • 22 апреля 2024 г. 15:00
Ответы на вопрос 2
Вероятнее всего, проблема заключается в ошибке при чтении данных из файла graph.txt. Возможно, при считывании данных о расстояниях между городами, программа неправильно обрабатывает числовые значения и поэтому все значения расстояний считываются как нули.

Для исправления этой проблемы необходимо убедиться, что при чтении данных из файла graph.txt числовые значения корректно преобразуются в числовой тип данных (например, целое число или число с плавающей точкой). Также важно убедиться, что данные в файле graph.txt представлены в правильном формате и разделены корректным разделителем (например, пробелом).

После того, как вы исправите ошибку при чтении данных о расстояниях между городами, алгоритм Дейкстры должен работать корректно и выводить правильные значения расстояний между городами.
Вы выводите d[begin_index] , это расстояние до начальной вершины. Естественно там 0 будет. А выводить надо расстояние до конечной. Надо end использовать (и выводить после того, как вы end нашли).
Похожие вопросы