Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,845 questions

51,766 answers

573 users

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

2 Answers

0 votes
// Define a Queue class
class Queue {
    private $queue; // Array to store queue elements
    private $size;  // Maximum size of the queue
    private $first; // Index of the first element
    private $last;  // Index of the last element

    // Constructor to initialize the queue
    public function __construct($size = 10) {
        $this->queue = [];
        $this->size = $size;
        $this->first = 0;
        $this->last = -1;
    }

    // Enqueue: Add an element to the last of the queue
    public function enqueue($element) {
        if ($this->isFull()) {
            echo "Queue is full. Cannot enqueue $element.\n";
            return false;
        }
        $this->last++;
        $this->queue[$this->last] = $element;
        echo "Enqueued: $element\n";
        
        return true;
    }

    // Dequeue: Remove an element from the first of the queue
    public function dequeue() {
        if ($this->isEmpty()) {
            echo "Queue is empty. Cannot dequeue.\n";
            return null;
        }
        $element = $this->queue[$this->first];
        unset($this->queue[$this->first]); // Remove the element
        $this->first++;
        echo "Dequeued: $element\n";
        
        return $element;
    }

    // Check if the queue is empty
    public function isEmpty() {
        return $this->first > $this->last;
    }

    // Check if the queue is full
    public function isFull() {
        return $this->last - $this->first + 1 >= $this->size;
    }

    // Display the queue
    public function display() {
        if ($this->isEmpty()) {
            echo "Queue is empty.\n";
            return;
        }
        echo "Queue elements: ";
        for ($i = $this->first; $i <= $this->last; $i++) {
            echo $this->queue[$i] . " ";
        }
        echo "\n";
    }
}

$queue = new Queue(5); // Create a queue with a maximum size of 5

$queue->enqueue(10);
$queue->enqueue(20);
$queue->enqueue(30);
$queue->display(); 

$queue->dequeue(); 
$queue->display(); 

$queue->enqueue(40);
$queue->enqueue(50);
$queue->enqueue(60);
$queue->enqueue(70); 
$queue->display();



/*
run:

Enqueued: 10
Enqueued: 20
Enqueued: 30
Queue elements: 10 20 30 
Dequeued: 10
Queue elements: 20 30 
Enqueued: 40
Enqueued: 50
Enqueued: 60
Queue is full. Cannot enqueue 70.
Queue elements: 20 30 40 50 60 

*/

 



answered Aug 22, 2025 by avibootz
0 votes
// Create a queue using SplQueue
$queue = new SplQueue();

// Enqueue elements (add elements to the queue)
$queue->enqueue("Element 1");
$queue->enqueue("Element 2");
$queue->enqueue("Element 3");
$queue->enqueue("Element 3");

// Display the queue
echo "Queue after enqueuing elements:\n";
foreach ($queue as $element) {
    echo $element . "\n";
}

echo "\nDequeued elements:\n";
echo $queue->dequeue();


// Dequeue elements (remove elements from the queue)
echo "\nDequeued elements:\n";
while (!$queue->isEmpty()) {
    echo $queue->dequeue() . "\n";
}

// Check if the queue is empty
if ($queue->isEmpty()) {
    echo "\nThe queue is now empty.\n";
}




/*
run:

Queue after enqueuing elements:
Element 1
Element 2
Element 3
Element 3

Dequeued elements:
Element 1
Dequeued elements:
Element 2
Element 3
Element 3

The queue is now empty.

*/

 



answered Aug 22, 2025 by avibootz
...