PHP - PriorityQueue 函数


PriorityQueue Queue 非常相似。这些值被推送到具有分配优先级的队列中,具有最高优先级的值可以始终位于队列的前面。它是通过使用最大堆实现的。

要求

扩展和兼容性 polyfill 都需要 PHP 7。

安装

使用 PECL 扩展安装数据结构的最简单方法。


pecl install ds

语法


public Ds\PriorityQueue::functionName()

类概要


Ds\PriorityQueue implements Ds\Collection {
   /* 常量 */
   const int MIN_CAPACITY = 8 ;
   
   /* 方法 */
   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 )
}

预定义常量

Ds\PriorityQueue::MIN_CAPACITY

函数列表

以下是 PriorityQueue 类中可用函数的完整列表 -

函数 描述 PHP
Ds\PriorityQueue::allocate() 为所需的容量分配足够的内存。  
Ds\PriorityQueue::capacity() 返回当前容量。  
Ds\PriorityQueue::clear() 从队列中删除所有值。  
Ds\PriorityQueue::__construct() 创建新实例。  
Ds\PriorityQueue::copy() 返回队列的浅表副本。  
Ds\PriorityQueue::count() 获取 PriorityQueue 存在的元素计数。  
Ds\PriorityQueue::isEmpty() 返回队列是否为空。  
Ds\PriorityQueue::jsonSerialize() 返回可转换为 JSON 的表示形式。  
Ds\PriorityQueue::peek() 在队列的前面返回一个值。  
Ds\PriorityQueue::pop() 删除并返回具有最高优先级的值。  
Ds\PriorityQueue::push() 将具有给定优先级的值推送到队列中。  
Ds\PriorityQueue::toArray() 将队列转换为数组。  

重要提示

这是需要记住的重要一点 -

  • 对于具有相同优先级的值,将保留“先进先出”顺序。
  • 破坏性地迭代 PriorityQueue 等效于在队列中连续运行 pop 操作,直到队列为空。