Pokoušel jsem se o dynamickou frontu a nejde mi to zkompilovat
, prosím o jakoukoli radu jak to zprovoznit.
type PPrvek=^TPrvek;
TPrvek = record
data: Integer;
dalsi: PPrvek;
end;
TFronta = record
zacatek, konec: PPrvek;
end;
var fronta: TFronta;
procedure initFronta(var fro: TFronta);
begin
fro.zacatek:=nil;
end;
procedure vlozDoFronty(prvek: Integer; var fro: TFronta);
var pom: PPrvek;
begin
if fro.zacatek<>nil then begin
if fro.konec<>nil then begin
new(pom);
pom^.data:=prvek;
pom^.dalsi:=nil;
pom^.dalsi:=pom;
fro:=pom;
end;
end else begin
new(pom);
pom^.data:=prvek;
pom^.dalsi:=nil;
fro:=pom;
end;
end;
procedure uklidFrontu(var fro: TFronta);
var pom, pom2: PPrvek;
begin
pom:=fro.zacatek;
while pom <> nil do begin
pom2:=pom;
pom:=pom^.dalsi;
dispose(pom2);
end;
fro.zacatek:=nil;
fro.konec:=nil;
end;
procedure vyjmiAVypis(var fro: TFronta);
var pom: PPrvek;
begin
if fro <> nil then begin
writeln('Na zacatku fronty je: ',fronta^.data);
pom:=fro;
if pom^.dalsi <> nil then begin
fro:=pom^.dalsi
end else begin
fro.zacatek:=nil;
end;
dispose(pom);
end;
end;
procedure vypisFrontu(fro: TFronta);
var pom: PPrvek;
i: integer;
begin
i:=1;
pom:=fro.zacatek;
while pom <> nil do begin
writeln('Ve fronte je',i,': ', pom^.data);
inc(i);
pom:=pom^.dalsi;
end;
end;
begin
initFronta(fronta);
vlozDoFronty(1,fronta);
vlozDoFronty(3,fronta);
vlozDoFronty(4,fronta);
vyjmiAFrontu(frontu);
end.