08 - Red

Primer programa koji žonglira red:

program redovi;
type
  redpok = ^slog;
  slog = record
           ime: string[20];
           sled: redpok;
         end;
var
  red, poslednji: redpok;
procedure stavinakraj(var pocetak, kraj: redpok; i: string);
var
  temp: redpok;
begin
  new(temp);
  temp^.ime := i;
  temp^.sled := nil;
  if pocetak = nil then begin
    pocetak := temp;
    kraj := temp;
    end
  else begin
    kraj^.sled := temp;
    kraj := temp;
  end;
end;

procedure vadiizreda(var pocetak: redpok; var i: string);
var
  temp: redpok;
begin
  if pocetak <> nil then begin
    temp := pocetak;
    i := pocetak^.ime;
    pocetak := pocetak^.sled;
    dispose(temp)
  end;
end;

procedure formirajred(var pocetak, kraj: redpok);
var
  i: string;
begin
  pocetak := nil;
  write('Unesite element koji ide u red (za kraj kraj): ');
  readln(i);
  while i <> 'kraj' do begin
    stavinakraj(pocetak, kraj, i);
    write('Unesite element koji ide u red (za kraj kraj): ');
    readln(i);
  end;
end;

procedure ispisired(pocetak: redpok);
var
  i: string;
begin
  writeln('Pocetak ispisa');
  while pocetak <> nil do begin
    vadiizreda(pocetak, i);
    writeln(i);
  end;
  writeln('Kraj ispisa');
end;

begin
  formirajred(red, poslednji);
  ispisired(red);
  readln;
end.