Fronta celých čísel:


type
  spoj = ^prvek;
  prvek = record
    hodnota: integer;
    dalsi: spoj;
  end;

var
  fronta: spoj;
  cislo: integer;

procedure Vytvor;
{ Vytvori frontu - inicializuje promennou predstavujici tuto frontu }
begin
  fronta := nil;
end;

function Prazdna: boolean;
{ Jestlize je fronta prazdna, vraci true, jinak false }
begin
  Prazdna := fronta=nil;
end;

procedure Pridej(x: integer);
{ prida na konec fronty prvek s hodnotou x }
var
  pom, posledni: spoj;
begin
  New(pom);
  with pom^ do begin
    hodnota := x;
    dalsi := nil;
  end;
  if Prazdna then fronta := pom
  else begin
    posledni := fronta;
    while(posledni^.dalsi <> nil) do
      posledni := posledni^.dalsi;
    posledni^.dalsi := pom;
  end;
end;

procedure Odeber(var x: integer);
{ Vyjme z fronty prvni prvek, jeho hodnotu ulozi do parametru x }
var
  pom: spoj;
begin
  if Prazdna then 
    writeln('Fronta je prazdna, nelze nic odebrat!')
  else begin
    x := fronta^.hodnota;
    pom := fronta;
    fronta := fronta^.dalsi;
    Dispose(pom);
  end;
end;
  

begin  { hlavni program }
  Vytvor;

  ... pracujeme

  while not Prazdna do Odeber(cislo);
end.