Алгоритм Дейкстры - sergeresko/Lem_in-explanation GitHub Wiki
Надо использовать вариант алгоритма Дейсктры, который описывается в приложении в конце статьи.
Переменные
Комната r
и множество S
.
Инициализация
У всех комнат distance = ∞
и parent = NULL
.
r
равна start и у неё distance = 0
.
Множество S
пустое.
r ≠ NULL
и r ≠ end
:
Пока - пройтись по соседям комнаты
r
, заменяя ихdistance
наr->distance + link->weight
, если эта сумма меньше, чемdistance
; при этом каждому содеду, которому понадобилась такая замена, присвоитьparent = r
и добавить этого соседа в множествоS
; - удалить из множества
S
комнату с наименьшимdistance
и обозначить еёr
.
Комментарий
Фраза «добавить комнату в множество» подразумевает, что, если эта комната уже находится в множестве, то добавления не происходит. Множество не может содержать повторяющихся элементов.
Дальше: Программа для проверки