type pnode= ^node; node= record data: integer; next: pnode; end; var first, current, prev: pnode; n,dat,i: integer; flag: boolean; begin {initializing} first:= nil; current:= nil; prev:= nil; n:=0; flag:= false; {get number of nodes in list} write('Enter elements quantity: '); readln(n); new(first); write('Element #1= '); readln(dat); first^.data:= dat; first^.next:= nil; prev:= first; for i:= 2 to n do begin {fill nodes with nubmers from keyboard input} new(current); write('Element #',i,'= '); readln(dat); current^.data:=dat; prev^.next:=current; prev:= current; end; prev:=first^.next; {search dublicates in list} while prev <> nil do begin current:= first; while current <> nil do begin flag:= (prev^.data = current^.data) and (current <> prev); if flag then break; current:=current^.next; end; if flag then begin writeln('There are dublicates'); break; end; prev:= prev^.next; end; {list output} current:=first; for i:=1 to n do begin write(current^.data,' '); current:=current^.next; end; {freee memory} for i:=1 to n do begin current:= first^.next; dispose(first); first:= current; end; readln; end.