zurück

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