Курсовая работа: Структуры данных и алгоритмы
s1:=s1+min(P^.cost); {Подсчет суммы параметров по рейсам в маршруте}
s2:=s2+max(P^.cost);
d:=d+P^.ddelay+P^.waytime;
P:=P^.last; {Переход к следующему рейсу в маршруте}
inc(r);
Until P=nil;
if s1<=cost then begin {Еслисоответствуетцена}
P:=A;
Repeat
new(Q); {Сборкацепочкирейсовмаршрута}
Q^:=P^;
Q^.last:=Panswer^.path;
Panswer^.path:=Q;
P:=P^.last; {Переход к следующему рейсу в маршруте}
Until p=nil;
Panswer^.mincost:=s1; Panswer^.maxcost:=s2; {Сохранениесумарныхценивремени}
Panswer^.waytime:=d; Panswer^.reboard:=r; {ичислапересадоквэлементемаршрута}
W:=LAnswer;
While (W^.next<>nil) and ((W^.next)^.waytime<d) do W:=W^.next; {Поискместавсоответствиивременипути}
While (W^.next<>nil) and ((W^.next)^.reboard<r) and ((W^.next)^.waytime=d) do W:=W^.next; {Поискместапокол-вупересадок}
Panswer^.next:=W^.next; {Добавление маршрута в найденное место}
W^.next:=Panswer;
end
end;
{Возвращает ссылку на информацию об I-ой станции следования}
Function CityInPath(A:Pway; I:citycode):WayP;
var P:Pway;
Begin
P:=A;