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
廣告