of integer; i,j,u,nm,yk:inte


of integer; i,j,u,nm,yk:integer; begin {инициализация данных} FillChar(NumIn,SizeOf(NumIn),0); for i:=1 to N do for j:=1 to N do if A[i,j]<>0 then Inc(NumIn[j]); nm:=0;yk:=0; for i?V do if NumIn[i]=0 then begin Inc(yk);Stack[yk]:=i; end; {основной цикл} while yk<>0 do begin u:=Stack[yk];Dec[yk];Inc(nm);Num[u]:=nm; for i:=1 to n do if A[u,i]<>0 then begin Dec(NumIn[i]); if NumIn[i]=0 then begin Inc(yk); Stack[yk]:=i; end; end; end; end; Итак, пусть для графа G выполнено условие утверждения и нам необходимо найти кратчайшие пути (их длины) от первой вершины до всех остальных . Пусть мы находим оценку для вершины с номером i. Достаточно просмотреть вершины, из которых идут дуги в вершину с номером i. Они имеют меньшие номера, и оценки для них уже известны. Остается выбрать меньшую из них. procedure Distance; {D, A - глобальные] var i,j:integer; begin D[1]:=0; for i:=2 to N do D[i]:=?; {основной
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz