| Код | Type TData=integer; PElem=^TElem; TElem=record Data : TData; Next : PElem; end; function AddAfter(x:TData;var E:PElem):PElem; var NewElem : PElem; begin new(NewElem); NewElem^.Data:=x; if E<>nil then begin NewElem^.Next:=E^.Next; E^.Next:=NewElem; end else NewElem^.Next:=nil; AddAfter:=NewElem; end; procedure DelAll(var E:PElem); var Elem:PElem; begin while E<>nil do begin Elem:=E^.Next; Dispose(E); E:=Elem; end; end; procedure List(E:PElem); var Elem:PElem; begin Elem:=E; while Elem<>nil do begin Write(Elem^.Data:4); Elem:=Elem^.Next; end; if E=nil then write('nil':4); end; const n=10; var A,B,C,FirstA,FirstB,FirstC : PElem; i:integer; BEGIN A:=nil; FirstA:=nil; for i:=1 to n do begin A:=AddAfter(random(90)+10,A); if FirstA=nil then FirstA:=A; end; A:=FirstA; B:=nil; C:=nil; FirstB:=nil; FirstC:=nil; While A<>nil do begin if A^.Data mod 2 =0 then begin B:=AddAfter(A^.Data,B); if FirstB=nil then FirstB:=B; end else begin C:=AddAfter(A^.Data,C); if FirstC=nil then FirstC:=C; end; A:=A^.Next; end; Write(#13#10'A:'); List(FirstA); Write(#13#10'B:'); List(FirstB); Write(#13#10'C:'); List(FirstC); DelAll(FirstA); DelAll(FirstB); DelAll(FirstC); END. |
|