ВУЗ:
Составители:
Рубрика:
43
  public 
    constructor Create; 
    destructor Destroy; 
    procedure Enqueue(i: DataType); 
    function Dequeue: DataType; 
    function First: DataType; 
    function IsEmpty: boolean; 
  end; 
implementation 
constructor Queue.Create; 
begin 
  f:=nil; 
  l:=nil; 
end; 
destructor Queue.Destroy; 
begin 
  while not IsEmpty do 
    Dequeue; 
end; 
procedure Queue.Enqueue(i: DataType); 
var v: PNode; 
begin 
  v:=NewNode(i,nil); 
  if IsEmpty then 
    f:=v 
  else l^.next:=v; 
  l:=v; 
end; 
function Queue.Dequeue: DataType; 
var v: PNode; 
begin 
  Assert(not IsEmpty); 
  v:=f; 
  f:=f^.next; 
  if f=nil then 
    l:=nil; 
  Result:=v^.data; 
  Dispose(v); 
end; 
function Queue.IsEmpty: DataType; 
begin 
