PHP - Ds\PriorityQueue::pop() Function



The PHP Ds\PriorityQueue::pop() function is used to remove and return a value at the front of the queue, which means the value with the highest priority.

Syntax

Below is the syntax of the PHP Ds\PriorityQueue::pop() function −

public mixed Ds\PriorityQueue::pop( void )

Parameters

This function doesn't have any parameters.

Return Value

The pop() function returns a removed value, which was at the front of the queue.

Exception

If the PriorityQueue is empty, the pop() function throws an UnderflowException.

PHP Version

The pop() function is available from version 1.0.0 of the Ds extension onwards.

Example 1

Here is the basic example of the PHP Ds\PriorityQueue::pop() function to show you how we can pop an element from the queue.

<?php
   //Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 

   // Push elements in the queue
   &pqueue->push("A", 3);
   &pqueue->push("B", 2);
   &pqueue->push("C", 1);
   
   // Pop element and echo it
   echo "The element has been popped from the queue: ".&pqueue->pop(); 
?> 

Output

This will generate the below output −

The element has been popped from the queue: A

Example 2

In the below PHP code we will try to use the pop() function and pop the first inserted element from the queue. In our example point will be popped because its priority is 3. So rest of the queue will be printed.

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 
   
   // Push elements in the queue
   $pqueue->push("Tutorials", 1); 
   $pqueue->push("Point", 3); 
   $pqueue->push("India", 2); 
  
   echo "The initial PriorityQueue is: \n"; 
   print_r($pqueue); 
  
   echo "\n The popped element is:"; 
   print_r($pqueue->pop()); 
  
   echo "\n The final PriorityQueue is: \n";
   print_r($pqueue); 
?>

Output

The above code will result something like this −

The initial PriorityQueue is: 
Ds\PriorityQueue Object
(
    [0] => Point
    [1] => India
    [2] => Tutorials
)

 The popped element is:Point
 The final PriorityQueue is: 
Ds\PriorityQueue Object
(
    [0] => India
    [1] => Tutorials
)

Example 3

Now the below code use pop() function and pop all the elements in order of priority. So in our example, 3 is the highest priority and 1 is the lowest priority.

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue();

   // Push elements in the queue
   &pqueue->push("First", 1);
   &pqueue->push("Second", 2);
   &pqueue->push("Third", 3);
   
   echo &pqueue->pop(); 
   echo "\n".$pqueue->pop(); 
   echo "\n".$pqueue->pop();
?> 

Output

This will create the below output −

Third
Second
First

Example 4

In the following example, we are using the pop() function and handle an empty queue. So we will print the message for the user if the queue found empty.

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue();
   $pqueue->push("First Element", 1);
   echo $pqueue->pop()."\n"; 
   
   // Trying to pop from an empty queue
   try {
       $pqueue->pop();
   } catch (UnderflowException $e) {
       echo "Queue is empty"; 
   }
?> 

Output

Following is the output of the above code −

First Element
Queue is empty
php_function_reference.htm
Advertisements