home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 26
/
CD_ASCQ_26_1295.iso
/
voxrom
/
textes
/
repwin08
/
annexes
/
accroc
/
fifo.pas
next >
Wrap
Pascal/Delphi Source File
|
1995-10-01
|
1KB
|
59 lines
unit FIFO; {files d'attentes ou queues}
INTERFACE
type TDonnee = Integer;
type PQueue = ^Cellule;
Cellule = record
nb:TDonnee;
next:PQueue;
end;
procedure init_queue(var head,tail:PQueue); {initialise la queue}
procedure entrer_elem(var head:PQueue;var tail:PQueue;item:TDonnee);
{entre un élément 'item' dans la file d'attente}
procedure sortir_elem(var head:PQueue;var tail:PQueue;var item:TDonnee;var flag:boolean);
{ressort le prochain élément de la fine d'attente dans la variable item.
Le flag est true si l'opération c'est bien déroulée (autrement dit, s'il y
avait encore du monde dans la file ;-)}
IMPLEMENTATION
procedure init_queue(var head,tail:PQueue);
begin
head:=nil;
tail:=nil;
end;
procedure entrer_elem(var head:PQueue;var tail:PQueue;item:TDonnee);
var ptr:PQueue;
begin
new(ptr);
ptr^.nb:=item;
ptr^.next:=nil;
if head=nil
then head:=ptr
else tail^.next:=ptr;
tail:=ptr;
end;
procedure sortir_elem(var head:PQueue;var tail:PQueue;var item:TDonnee;var flag:boolean);
var ptr:PQueue;
begin
if head=nil
then flag:=false
else begin
flag:=true;
ptr:=head;
head:=head^.next;
item:=ptr^.nb;
dispose(ptr);
end;
end;
END.