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 操作,直到队列为空。