Курсовая работа: Распределение памяти

if (pattern=pp) or (pattern=pa) then

if left<>nil then return(false);

return true;

end; {blockleft}

function blockright (cell:celltype): boolean;

{ Проверяет, является ли левое поле атомом или нуль указателем }

begin

with cell do

if (pattern=pp) or (pattern=ap) then

if right<>nil then return(false);

end;{blockright}

function block (cell:celltype):boolean;

{проверяет, помечена ли ячейка и не содержит ли ненулевые указатели}

begin

if (cell.mark=true) or blockleft(cell) and blockright(cell) then

return true

else return false

end; {block}

procedure nrdfs; {помечает ячейки, доступные из ячейки source}

var

current, previous:^celltype;

begin {инициализация}

current:=source1^.right; {ячейка на которую указывает source1}

previous:=source1;

source1^.back:=r;

source1^.right:=source1;

source1^.mark:=true;

state1: {Движение вперёд}

if block (current^) then

К-во Просмотров: 397
Бесплатно скачать Курсовая работа: Распределение памяти