PHP - Ds\PriorityQueue::pop() 函数



PHP 的 Ds\PriorityQueue::pop() 函数用于移除并返回队列前端的值,这意味着具有最高优先级的值。

语法

以下是 PHP Ds\PriorityQueue::pop() 函数的语法:

public mixed Ds\PriorityQueue::pop( void )

参数

此函数没有任何参数。

返回值

pop() 函数返回已移除的值,该值位于队列前端。

异常

如果 PriorityQueue 为空,则 pop() 函数会抛出 UnderflowException。

PHP 版本

pop() 函数从 Ds 扩展的 1.0.0 版本开始可用。

示例 1

以下是 PHP Ds\PriorityQueue::pop() 函数的基本示例,向您展示如何从队列中弹出元素。

<?php
   //Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 

   // Push elements in the queue
   &pqueue->push("A", 3);
   &pqueue->push("B", 2);
   &pqueue->push("C", 1);
   
   // Pop element and echo it
   echo "The element has been popped from the queue: ".&pqueue->pop(); 
?> 

输出

这将生成以下输出:

The element has been popped from the queue: A

示例 2

在下面的 PHP 代码中,我们将尝试使用 pop() 函数并从队列中弹出第一个插入的元素。在我们的示例中,将弹出 point,因为它的优先级为 3。因此,将打印队列的其余部分。

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 
   
   // Push elements in the queue
   $pqueue->push("Tutorials", 1); 
   $pqueue->push("Point", 3); 
   $pqueue->push("India", 2); 
  
   echo "The initial PriorityQueue is: \n"; 
   print_r($pqueue); 
  
   echo "\n The popped element is:"; 
   print_r($pqueue->pop()); 
  
   echo "\n The final PriorityQueue is: \n";
   print_r($pqueue); 
?>

输出

以上代码将产生类似以下的结果:

The initial PriorityQueue is: 
Ds\PriorityQueue Object
(
    [0] => Point
    [1] => India
    [2] => Tutorials
)

 The popped element is:Point
 The final PriorityQueue is: 
Ds\PriorityQueue Object
(
    [0] => India
    [1] => Tutorials
)

示例 3

现在,以下代码使用 pop() 函数并按优先级顺序弹出所有元素。因此,在我们的示例中,3 是最高优先级,1 是最低优先级。

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue();

   // Push elements in the queue
   &pqueue->push("First", 1);
   &pqueue->push("Second", 2);
   &pqueue->push("Third", 3);
   
   echo &pqueue->pop(); 
   echo "\n".$pqueue->pop(); 
   echo "\n".$pqueue->pop();
?> 

输出

这将创建以下输出:

Third
Second
First

示例 4

在以下示例中,我们使用 pop() 函数并处理空队列。因此,如果发现队列为空,我们将向用户打印消息。

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue();
   $pqueue->push("First Element", 1);
   echo $pqueue->pop()."\n"; 
   
   // Trying to pop from an empty queue
   try {
       $pqueue->pop();
   } catch (UnderflowException $e) {
       echo "Queue is empty"; 
   }
?> 

输出

以下是上述代码的输出:

First Element
Queue is empty
php_function_reference.htm
广告