{ Terreno Antonio mat.9714216 }
unit
coda_lst;
interface
uses
listeric;
type
tipo_coda= record
fronte,retro: tipo_lista
end;
procedure crea(var C: tipo_coda);
function inserisci_retro(x: tipo_elemento;var C: tipo_coda): boolean;
function estrai_fronte(var x: tipo_elemento;var C: tipo_coda): boolean;
function piena(C: tipo_coda): boolean;
function vuota(C: tipo_coda): boolean;
procedure visualizza_stato(C: tipo_coda);
implementation
procedure crea(var C: tipo_coda);
begin
C.fronte:=nil;
end;
function inserisci_retro(x: tipo_elemento;var C: tipo_coda): boolean;
begin
if (vuota(C)) then
begin
new(C.fronte);
C.retro:= C.fronte
end
else
begin
new(C.retro^.next);
C.retro:=C.retro^.next
end;
C.retro^.element:=x;
C.retro^.next:=nil;
inserisci_retro:=true
end;
function estrai_fronte(var x: tipo_elemento;var C: tipo_coda): boolean;
begin
if vuota(C) then
estrai_fronte:= false
else
begin
x:= C.fronte^.element;
writeln('elemento estratto -> ',x);
C.fronte:= C.fronte^.next;
estrai_fronte:= true
end
end;
function piena(C: tipo_coda): boolean;
begin
piena:= false
end;
function vuota(C: tipo_coda): boolean;
begin
vuota:=(C.fronte = nil)
end;
procedure visualizza_stato(C: tipo_coda);
begin
stampa_lista(C.fronte);
end;
end.