Курсовая работа: Поиск кратчайшего пути в лабиринте 2
weight:LongInt;
yes:Boolean;
begin
nX:=na-1; (* X={0,1,2,...,nX} - множество вершин *)
//Вычисления
for x:=0 to nX do begin
Mark[x]:=FALSE;
Dist[x]:=$7fffffff;
end;
y:=x0; {Последняя вершина с постоянной меткой}
Mark[y]:=TRUE;
Dist[y]:=0;
zEnd:=z;
while not Mark[z] do begin
{Обновить временные метки}
for x:=0 to nX do
if (not Mark[x]) and YesRib(x,y) and (Dist[x]>Dist[y]+1) then begin
Dist[x]:=Dist[y]+1;
Prev[x]:=y;
end;
{Поиск вершины с минимальной временной меткой}
yes:=False;
weight:=$7fffffff;
for x:=0 to nX do if not Mark[x] then if weight>Dist[x] then begin
weight:=Dist[x];
y:=x;
yes:=True;
end;
if not yes then begin