A[5,3].l:=2 5 3 [2,3,4] 3
A[5,3].l:=2
5 3 [2,3,4] 3 -
5 3 [2,3,4] 4 A[5,3].d~A[4,3].d+1
5 4 [2,3,4] 2 A[5,4].d:=A[2,4].d+1=5 A[5,4].l:=2
5 4 [2,3,4] 3 A[5,4].d~A[3,4].d+1
5 4 [2,3,4] 4 -
5 5 [2,3,4] 2 A[5,5].d:=A[2,5].d+1=6 A[5,5].l:=2
5 5 [2,3,4] 3 A[5,5].d~A[3,5].d+1
5 5 [2,3,4] 4 A[5,5].d~A[4,5].d+1
После этой прокрутки массив A по полю d имеет вид:
A[i,j].d 1 2 3 4 5
1 1 2 2 3 4
2 2 1 3 4 5
3 2 3 1 0 4
4 3 4 0 1 5
5 4 5 4 5 6
а по полю l («*» обозначено неопределенное значение):
A[i,j].l 1 2 3 4 5
1 * 1 1 3 4
2 1 1 1 3 4
3 1 1 1 * 2
4 3 3 * 3 2
5 4 4 2 2 2
Попробуем по этой таблице вывести путь для нашего примера с помощью следующей процедуры:
procedure Way(i,j:integer);
begin
if (i=1) and (j=1) then writeln(name[1])
else if i>=j then begin
writeln(name[i]);
Way(A[i,j].l,j);
end
else begin
Way(i,A[i,j].l);
writeln(name[j]);
end;
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа