Слайд 2Структура данных
type Tinf=integer;
Tptr = ^Tlist;
Tlist = record
inf: Tinf;
pred, next:Tptr;
end;
Слайд 3Создание двухсвязного списка
var head, p, q:Tptr; f:textfile;
begin
…
reset(f);
head:=nil;
if not eof(f) then
begin
new(head);
read(f,head^.inf);
head^.pred:=nil;
head^.next:=nil;
q:=head;
end;
while not eof(f) do
begin
new(p);
read(f, p^.inf);
p^.pred:=q;
q^.next:=p;
q:=p;
end;
p^.next:=nil;
…
end.
Слайд 4Удаление элемента
head:=head^.next;
head^.pred:=nil;
p^.pred^.next:=p^.next;
p^.next^.pred:=p^.pred;
dispose(p);
Слайд 5Вставка элемента в список перед найденным
if p=head
then
begin
p1^.pred:=nil;
p1^.next:=head;
head:=p1;
end
else
begin
p1^.pred:=p^.pred;
p1^.next:=p;
p^.pred^.next:=p1;
p^.pred:=p1;
end;