program stek;
type
pokazivac = ^slog;
 slog = record
        br:integer;
        sledeci:pokazivac;
        end;
        
var
vrhSteka:pokazivac;
i:integer;
procedure staviNaStek(var vrhStaka:pokazivac;broj:integer);
  var
  elem:pokazivac;
  begin
  new(elem);
  elem^.br:=broj;
  elem^.sledeci:=vrhSteka;
  vrhSteka:=elem;
  end;

function skiniSaSteka(var vrhSteka:pokazivac):integer;
  var
  br:integer;
  pomocni:pokazivac;
  begin
  if (vrhSteka <> nil) then
    begin
    br:=vrhSteka^.br;
    pomocni:=vrhSteka;
    vrhSteka:=vrhSteka^.sledeci;
    dispose(pomocni);
    end
   else br:=-1;
   
  skiniSaSteka:=br; 
  end;
procedure ispisiStek(vrhSteka:pokazivac);
begin

while (vrhSteka <> nil) do
  begin
  writeln(vrhSteka^.br);
  vrhSteka:=vrhSteka^.sledeci;
  end;

end; 

begin
vrhSteka:=nil;
for i:=1 to 10 do 
  begin
  staviNaStek(vrhSteka,i);
  writeln('Stek izgleda :');
  ispisiStek(vrhSteka);
  end;
writeln('*****************');
for i:=1 to 10 do 
  begin
  writeln('Skidam sa steka ',skiniSaSteka(vrhSteka));
  writeln('Stek sada izgleda');
  ispisiStek(vrhSteka);
  end;
end.
  
  