How to create a queue, then enqueue and dequeue elements in Pascal

1 Answer

0 votes
program QueueExample;

const
  MAX_SIZE = 128;

type
  Queue = record
    data: array[1..MAX_SIZE] of Integer;
    first, last: Integer;
  end;

procedure InitializeQueue(var q: Queue);
begin
  q.first := 1;
  q.last := 0;
end;

function IsEmpty(q: Queue): Boolean;
begin
  IsEmpty := q.last < q.first;
end;

function IsFull(q: Queue): Boolean;
begin
  IsFull := q.last = MAX_SIZE;
end;

procedure Enqueue(var q: Queue; value: Integer);
begin
  if IsFull(q) then
    writeln('Queue is full!')
  else
  begin
    q.last := q.last + 1;
    q.data[q.last] := value;
    writeln('Enqueued: ', value);
  end;
end;

procedure Dequeue(var q: Queue);
begin
  if IsEmpty(q) then
    writeln('Queue is empty!')
  else
  begin
    writeln('Dequeued: ', q.data[q.first]);
    q.first := q.first + 1;
  end;
end;

procedure PrintQueue(q: Queue);
var
  i: Integer;
begin
  if IsEmpty(q) then
    writeln('Queue is empty.')
  else
  begin
    writeln('Queue contents:');
    for i := q.first to q.last do
      write(q.data[i], ' ');
    writeln;
  end;
end;

var
  q: Queue;

begin
  InitializeQueue(q);
  Enqueue(q, 10);
  Enqueue(q, 20);
  Enqueue(q, 30);
  
  PrintQueue(q);
  
  Dequeue(q);
  
  PrintQueue(q);
end.




(*
run:

Enqueued: 10
Enqueued: 20
Enqueued: 30
Queue contents:
10 20 30 
Dequeued: 10
Queue contents:
20 30 

*)

  

 



answered Aug 22, 2025 by avibootz
...