1  program seznam;
 2
 3  type    ukazatel=^uzel;
 4          uzel=record
 5              cislo:integer;
 6              jmeno:string[20];
 7              dalsi:ukazatel;
 8          end;
 9
10  var     prvni,pracov,aktualni:ukazatel;
11          p:char;
12
13  begin
14   prvni:=nil;
15   write('chces vlozit ?  A/N   ');readln(p);
16   while (p='A') or (p='a') do begin
17     new(pracov);         {alokuje paměť}
18     write('Cislo ?   ');readln(pracov^.cislo); {načte proměnné}
19     write('Jmeno ?   ');readln(pracov^.jmeno);
20     pracov^.dalsi:=prvni;        {Nově načtenou proměnnou zařadí na začátek seznamu}
21     prvni:=pracov;
22     write('Chces pokracovat ?  A/N  ');readln(p);
23   end;
24
25  {Výpis seznamu}
26   aktualni:=prvni;
27   while (aktualni <> nil) do begin
28     writeln('  ',aktualni^.cislo,'  ',aktualni^.jmeno);
29     aktualni:=aktualni^.dalsi;
30   end;
31
32  {Uvolnění proměnných z paměti}
33   aktualni:=prvni;
34   while (aktualni <> nil) do begin
35     pracov:=aktualni;
36     aktualni:=aktualni^.dalsi;
37     dispose(pracov);
38   end;
39
40  end.