Курсовая работа: Разработка имитационной модели транспортной сети
function pop (var q: queue): integer; // Достать из очереди
begin
with q do
begin
pop: = a [head] ;
head: = (head + 1) mod size;
end;
end;
// Метод Форда-Фалкерсона
function mff (xo, xn: integer): boolean;
var
i, j: integer;
begin
fillchar (v, sizeof (v), false); { обнуляем массив посещений }
init_queue (q); { инициализируем очередь }
push (q, xo); { заталкиваем в очередь исток }
v [xo]: = true; { посетили исток }
p [xo]: = - 1; { у истока нет предка }
while not is_queue_empty (q) do { пока очередь не пуста }
begin
i: = pop (q); { достаем вершину из очереди }
for j: = 1 to n do { перебираем все вершины }
if not v [j] and { вершина не посещена }
(c [i, j] -f [i, j] > 0) then { ребро i->j ненасыщенное }
begin
v [j]: = true; { посетили вершину j }
push (q, j); { положили веришину j в очередь }
p [j]: = i; { i предок j }
end;