Сформировать список натуральных чисел. Вывести список и количество элементов списка. Вставить в список нулевой элемент после элемента, равного 4. Если в списке нет элемента, равного 4, то удалить из списка второй элемент.
program spisok;
uses crt;
type
ss=^zveno;
zveno=record
inf:integer;
sled:ss
end;
var p,f,u:ss; i,m:integer;
Procedure form;
var s:integer;
Begin
New(u); p:=u; u^.inf:=0; u^.sled:=nil;
Writeln('input chislo');
Readln(s);
While s<>0 do
begin new (p^.sled);p:=p^.sled; p^.inf:=s; p^.sled:=nil;
inc(u^.inf); readln(s);
end;
writeln
End;
Procedure print;
begin
writeln(' spisok');
p:=u^.sled;
while p<>nil do
begin write(p^.inf,' ');
p:=p^.sled
end;
writeln;
end;
Procedure vstavka(p:ss;m:integer);
var g:ss;
begin
new(g);
g^.inf:=m;
g^.sled:=p^.sled;
p^.sled:=g;
inc(u^.inf);
end;
Procedure del(p:ss);
var g:ss;
begin
g:=p^.sled;
p^.sled:=p^.sled^.sled;
dispose(g);
dec(u^.inf);
end;
Procedure poisk(m:integer;p:ss; var rp:ss);
begin
while (p^.inf<>m) and (p<>nil) do
p:=p^.sled;
rp:=p;
end;
BEGIN clrscr;
form;
print; writeln('kol-vo=', u^.inf);
p:=u^.sled;
poisk(4,p,f);
if f<>nil then vstavka(f,0) else del(s^.sled);
print; writeln('kol-vo=', u^.inf);
readln;
END.