Удаление указанного элемента из двунаправленного списка

(на удаляемый элемент указывает Ukaz)

Ukaz^.pred^.sled:=Ukaz^.sled;

Ukaz^.sled^.pred:=Ukaz^.pred;

dispose (Ukaz);

 

В отличие от двунаправленного списка однонаправленный обеспечивает последовательный просмотр элементов списка только от начала до конца.

 

Пример: Функция поиска в списке.

Необходимо найти элемент Res, информационная часть которого содержит значение i1.

 

function poisk (nead:ukaz; i1:integer; var p:ukaz):booleam;

var u:ukaz;

begin

poisk:=false;

res:=nil;

u:=nead;

while (u<>nil) and (p=nil) do

begin

if u^.inf=i1 then begin

poisk:=true;

p:=u

end;

u:=u^.next;

end

end;