Шукання елемента списку.
Алгоритм шукання елемента в списку аналогічний до шукання в динамічному рядку. Тому для списку теж складемо логічну функцію, побічним ефектом якої є інформація про першу за порядком ланку, яка містить шуканий елемент.
Особливістю використання кільцевих списків є формальна відсутність у них початку і кінця. Це потрібно врахувати під час конструювання функції.
Формальні параметри функції шукання елемента в кільцевому списку такі: List - вказівного типу, що міститиме вказівку на початкову ланку списку (тобто у цьому випадку на нульову ланку, з якої починається шукання); Elm - міститиме значення шуканого елемента; LanLst- вказівного типу, що міститиме як побічний ефект вказівку на ланку, яка містить шуканий елемент:
program Form6;
type
TypeElm=Char;
Link=^Lanka;
Lanka=record
Elem: Char;
Next: Link;
Predd: Link;
end;
function SeekLst(List:Link; Elnr:char; var LanLst:Link): Boolean;
var p,q: Link;
b: boolean;
begin
p:=List;
q:=P^.Next;
b:=False;
LanLst:=Nil;
while (p<>q) and (not B) do
if q^.EIem=Elm then
begin
b:=true;
LanLst:=q;
end
else q:=q^.next;
SeekLst:=b;
end;
begin
end.