PHP - 优先队列函数



优先队列与队列非常相似。值以指定的优先级推入队列,优先级最高的值始终位于队列的前面。它是使用最大堆实现的。

需求

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

安装

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

pecl install ds

语法

public Ds\PriorityQueue::functionName()

类概要

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 )
}

预定义常量

Ds\PriorityQueue::MIN_CAPACITY

函数列表

以下是PriorityQueue类中可用的所有函数列表:

序号 函数及描述 PHP版本
1

Ds\PriorityQueue::allocate() 函数

此函数可以为所需容量分配足够的内存。

2

Ds\PriorityQueue::capacity() 函数

此函数可以返回当前容量。

3

Ds\PriorityQueue::clear() 函数

此函数可以从队列中移除所有值。

4

Ds\PriorityQueue::__construct() 函数

此函数可以创建一个新实例。

5

Ds\PriorityQueue::copy() 函数

此函数可以返回队列的浅拷贝。

6

Ds\PriorityQueue::count() 函数

此函数可用于获取PriorityQueue中存在的元素数量。

7

Ds\PriorityQueue::isEmpty() 函数

此函数可以返回队列是否为空。

8

Ds\PriorityQueue::jsonSerialize() 函数

此函数可以返回可以转换为JSON的表示。

9

Ds\PriorityQueue::peek() 函数

此函数可以返回队列前面的值。

10

Ds\PriorityQueue::pop() 函数

此函数可以移除并返回具有最高优先级的值。

11

Ds\PriorityQueue::push() 函数

此函数可以将具有给定优先级的值推入队列。

12

Ds\PriorityQueue::toArray() 函数

此函数可以将队列转换为数组。

重要提示

以下是需要注意的重要事项:

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