Zásobník celých čísel:
type
spoj = ^prvek;
prvek = record
hodnota: integer;
dalsi: spoj;
end;
var
zasobnik: spoj;
cislo: integer;
procedure Vytvor;
{ Vytvori zasobnik - inicializuje promennou predstavujici tento zasobnik }
begin
zasobnik := nil;
end;
function Prazdny: boolean;
{ Jestlize v zasobniku nic neni, vraci true, pokud tam neco je, vraci false }
begin
Prazdny := zasobnik=nil;
end;
procedure Pridej(x: integer); { jiny nazev: PUSH }
{ Prida do zasobniku prvek s hodnotou x }
var
pom: spoj;
begin
New(pom);
with pom^ do begin
hodnota := x;
dalsi := zasobnik;
end;
zasobnik := pom;
end;
procedure Odeber(var x: integer); { jiny nazev: POP }
{ Vyjme ze zasobniku jeden prvek, jeho hodnotu preda v parametru x }
var
pom: spoj;
begin
if Prazdny then
writeln('Zasobnik je prazdny, nelze nic odebrat!')
else begin
x := zasobnik^.hodnota;
pom := zasobnik;
zasobnik := zasobnik^.dalsi;
Dispose(pom);
end;
end;
begin { hlavni program }
Vytvor;
... pracujeme
while not Prazdny do Odeber(cislo);
end.