PHP - PriorityQueue Functions
PriorityQueue is very similar to the Queue. The values are pushed into the queue with an assigned priority, and the value with the highest priority can always be at the front of the queue. It is implemented by using a max heap.
Requirements
PHP 7 is required for both extension and the compatibility polyfill.
Installation
The easiest way to install data structure by using the PECL extension.
pecl install ds
Syntax
public Ds\PriorityQueue::functionName()
Class Synopsis
Ds\PriorityQueue implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Methods */
public void allocate( int $capacity )
public int capacity( void )
public void clear( void )
public Ds\PriorityQueue copy( void )
public bool isEmpty( void )
public mixed peek( void )
public mixed pop( void )
public void push( mixed $value, int $priority )
public array toArray( void )
}
Predefined Constants
Ds\PriorityQueue::MIN_CAPACITY
List of Functions
Here is the complete list of functions available in the PriorityQueue class −
| Sr.No | Function & Description | PHP Version |
|---|---|---|
| 1 | Ds\PriorityQueue::allocate() Function This function can allocate enough memory for the required capacity. |
|
| 2 | Ds\PriorityQueue::capacity() Function This function can return the current capacity. |
|
| 3 | Ds\PriorityQueue::clear() Function This function can remove all values from the queue. |
|
| 4 | Ds\PriorityQueue::__construct() Function This function can create a new instance. |
|
| 5 | Ds\PriorityQueue::copy() Function This function can return a shallow copy of the queue. |
|
| 6 | Ds\PriorityQueue::count() Function This function can be used to get the count of elements present in PriorityQueue. |
|
| 7 | Ds\PriorityQueue::isEmpty() Function This function can return whether the queue is empty. |
|
| 8 | Ds\PriorityQueue::jsonSerialize() Function This function can return a representation that can be converted to JSON. |
|
| 9 | Ds\PriorityQueue::peek() Function This function can return a value at the front of a queue. |
|
| 10 | Ds\PriorityQueue::pop() Function This function can remove and return a value with highest priority. |
|
| 11 | Ds\PriorityQueue::push() Function This function can push the values with a given priority into a queue. |
|
| 12 | Ds\PriorityQueue::toArray() Function This function can convert the queue to an array. |
Important Note
Here is the important point to keep in mind −
- The "first in, first out" ordering is preserved for values with the same priority.
- Iterating over a PriorityQueue destructively is equivalent to continuously running pop operations across the queue until it is empty.