Procedure DeleteNode(var p:Dlist);
var q:dlist;
i,k:integer;
begin
i:=1;
writeln ('vvedite k:');
readln (k);
if p=nil then writeln ('spisok pust')
else
begin
q:=p^.next;
while (q<>p) and (i<>k-1) do
begin
q:=q^.next;
inc(i);
end;
if i<>k-1 then
writeln ('uzel ne naiden')
else
if q^.next=q then
begin
p:=nil;
dispose(q);
end
else
begin
if q=p then
p:=p^.next;
q^.prev^.next:=q^.next;
q^.next^.prev:=q^.prev;
dispose (q);
end;
end;
end;
Сообщение отредактировано: volvo -