Pascal Queue Implementation (Linked List)
type
File = ^Noeud;
Noeud = record
val: Integer;
suivant: File;
end;
procedure InitFile(var F: File);
// Initialises the queue
begin
F := nil;
end;
procedure Enqueue(var F: File; v: Integer);
// Adds a new integer to the end of the queue
var
nouv, temp: File;
begin
New(nouv);
nouv^.val := v;
nouv^.suivant := nil;
if F = nil then
F := nouv
else
begin
temp := F;
while temp^.suivant <> nil do
temp := temp^.suivant;
temp^.suivant := nouv;
end;
end;
function Dequeue(var F: File): Integer;
// Removes and returns the front element of the queue
var
sup: File;
begin
Dequeue := F^.val;
sup := F;
F := F^.suivant;
Dispose(sup);
end;
function IsEmptyQueue(F: File): Boolean;
// Checks whether the queue is empty
begin
IsEmptyQueue := F = nil;
end;