Procedure AddNewNode (var p:Dlist; info,k:integer);
var
q:Dlist;
i:integer;
begin
i:=1;
New(q);
if (p = nil) then
begin
writeln ('vvedite info:');
readln(info);
q^.info:=info;
q^.next:=q;
q^.prev:=q;
p:=q;
exit;
end
else begin
writeln ('vvedite k:');
readln (k);
q:=p^.next;
while (q<>p) and (i<k) do
begin
q:=q^.next;
i:=i+1;
end;
if i<>k then
writeln ('nepravilniy nomer')
else begin
if (i=k) then begin
writeln ('vvedite info:');
readln(info);
q^.info:=info;
q^.prev:=p^.prev;
q^.next:=p;
p^.prev^.next:=q;
p^.prev:=q;
end;
end;
end;
end;
Двусвязный Кольцевой список, Поставлю вопрос по-другому |