Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP - Ds\PriorityQueue::peek() Function



The PHP Ds\PriorityQueue::peek() function is used to return a value at the front of a queue. The value at the front of this PriorityQueue is returned by this function. The function's mixed return type is determined by the kind of value that is kept in the PriorityQueue.

Syntax

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

public mixed Ds\PriorityQueue::peek( void )

Parameters

The peek() function doesn't have any parameters.

Return Value

This function returns a value at the front of a queue but do not remove it.

Exception

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

PHP Version

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

Example 1

First we will show you the basic example of the PHP Ds\PriorityQueue::peek() function to get value at the front of the queue.

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 
   
   // Push the elements
   $pqueue->push("Tutorials", 1); 
   $pqueue->push("Point", 2); 
   $pqueue->push("India", 3); 
  
   echo "The PriorityQueue is: \n"; 
   print_r($pqueue); 
   
   echo "\nThe element at front of queue is: "; 
   print_r($pqueue->peek()); 
?>

Output

The above code will result something like this −

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

The element at front of queue is: India

Example 2

Now we will use different data types in the elements of the queue with different priorities and get the value at the front of the queue using the peek() function.

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

   $pqueue->push(100, 5);
   $pqueue->push("String", 2);
   $pqueue->push([1, 2, 3], 8);
   
   $topElement = $pqueue->peek();
   
   if (is_array($topElement)) {
       echo 'Array: ';
       print_r($topElement);
   } else {
       echo $topElement;
   }
?> 

Output

This will generate the below output −

Array: Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Example 3

In the following example, we are using the peek() function to find the peek element in the queue but here we are using negative numbers as priorities. So in the example, -1 is higher than -5 and -10.

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

   $queue->push("Low Priority", -1);
   $queue->push("Medium Priority", -5);
   $queue->push("High Priority", -10);
   
   echo $queue->peek(); 
?> 

Output

Following is the output of the above code −

Low Priority

Example 4

Now the below code we are using integer values as priorities and custom objects as elements.

<?php
   // Define class here
   class Task {
      public $name;
      public function __construct($name) {
          $this->name = $name;
      }
  }
  
  $pqueue = new \Ds\PriorityQueue();
  
  $pqueue->push(new Task("Task 1"), 10);
  $pqueue->push(new Task("Task 2"), 20);
  $pqueue->push(new Task("Task 3"), 5);
  
  $highestPriorityTask = $pqueue->peek();
  echo $highestPriorityTask->name;
?> 

Output

This will create the below output −

Task 2
php_function_reference.htm
Advertisements