Можете помочь нужно чтобы повторяющие элементы списке были рядо
typ
man=recor
name:string
age:integer
end
p_list=^element
element=recor
inf:man
next:p_list
end;
procedure Init(var h,t: p_list)
begi
h:=nil
t:=nil
end; procedure Print( h,t: p_list)
var cur:p_list
begi
if h=nil the
writeln ('Список пуст') els
begi
cur:=h
while curnil do begi
write(cur^.
inf.name,' ',cur^.inf.age,' ' )
cur:=cur^.next
end; end
writeln
end; function Size(h,t: p_list): word
var k:integer
cur:p_list
begi
k:=0;
cur:=h
while curnil do begi
k:=k+1
cur:=cur^.next
end
size:=k
end; procedure add(a:man;var h,t:p_list)
var cur,cur_new:p_list
begi
new(cur_new)
cur_new^.inf:=a
if h=nil then
begi
h:=cur_new
t:=cur_new
t^.next:=nil
en
else begi
if a.age<=H^.inf.age the
begi
cur_new^.next:=h
H:=cur_new
en
else begi
if a.age>=t^.inf.age then begi
cur_new^.next:=nil
t^.next:=cur_new
t:=cur_new
end
else
begi
if (hnil) and (tnil
then begin
cur_new^.next:=nil
t^.next:=cur_new
t:=cur_new; end
en
end
end
end;
procedure delete(a: man; var h, t: p_list)
var L,R, cur, curNext: p_list
begi
L:=h
R:=t
if (L nil) then begi
cur:= l
curNext:= cur^.next
if (a.age = L^.inf.age) and (L^.next = nil) then begi
dispose(L)
dispose®
en
else begi
cur:= L
curNext:= cur^.next
while (cur^.inf.age a.age) and (curNext nil) do begi
cur:= cur^.next
if (curnil) and (curNextnil) the
curNext:=cur^.next
if (cur^.inf.age a.age) the
writeln('Такого элемента не существует.')
end
if (a.age = L^.inf.age) and (L^.next nil) then begi
l:= curNext
cur^.next:= nil
dispose(cur)
cur:= l
en
els
if (cur^.inf.age = a.age) and (curNext nil) then begi
cur^.next:= curNext
cur^.next:= nil
dispose(cur)
en
else if (cur^.inf.age = a.age) and (curNext = nil) then begi
cur^.next:= nil
dispose®
end
end;
end
end; var h1,t1:p_list
m:man
k:integer; begi
Init(h1,t1)
Print(h1,t1)
writeln('L=',size(h1,t1))
m.name:='Vasya'
m.age:=30
for k:=1 to 10 do begin add(m,h1,t1);writeln('Age=', m.age)
Print(h1,t1)
m.age:=30+k mod 3; end; writeln('L=',size(h1,t1))
{
m.name:='Vasya'
m.age:=28
for k:=1 to 5 do begin add(m,h1,t1)
m.age:=m.age-2
end
Print(h1,t1)
writeln('L=',size(h1,t1))
m.name:='Vasya'
m.age:=30
for k:=1 to 10 do begin add(m,h1,t1)
m.age:=m.age+2
end
Print(h1,t1)
writeln('L=',size(h1,t1));} end.