Die bei Turau angegeben pascal - Version
Hier wie dort unvollständig !
procedure initkW (start : Integer);
var
i : Integer;
begin
for i := l to n do begin
D[i] := oo;
Vorgänger[i] := 0;
end;
D[start] := 0;
end;
procedure verkürze (i,j : Integer);
begin
if D[i,JT + B[i,j] < D[j] then begin ?
D[j] := DCi] + B[i,j];
Vorgänger[j] := i;
end
end;
var {globale Variable}
D : array[l..max] of Real;
Vorgänger : array[l..max] of Integer;
procedure dijkstra (G : B-Graph; start : Integer);
var
i,j : Integer;
B : set of Integer;
begin
initkW(start);
B := {start};
while B ^ 0 do begin
{wähle i £ B mit D[i] minimal und entferne i aus B;}
for jeden Nachbar j von i do begin
if D[j] = oo then
B. einfügen(.j);
verkürze(i,j);
end
end
end