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



PHP 的 **Ds\PriorityQueue::peek()** 函数用于返回队列前端的值。此函数返回此 PriorityQueue 前端的值。函数的混合返回类型由 PriorityQueue 中保存的值的类型决定。

语法

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

public mixed Ds\PriorityQueue::peek( void )

参数

**peek()** 函数没有任何参数。

返回值

此函数返回队列前端的值,但不将其移除。

异常

如果 PriorityQueue 为空,则 **peek()** 函数将抛出 UnderflowException。

PHP 版本

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

示例 1

首先,我们将向您展示 PHP **Ds\PriorityQueue::peek()** 函数的基本示例,以获取队列前端的值。

<?php
   // Create a new PriorityQueue
   $pqueue = new \Ds\PriorityQueue(); 
   
   // Push the elements
   $pqueue->push("Tutorials", 1); 
   $pqueue->push("Point", 2); 
   $pqueue->push("India", 3); 
  
   echo "The PriorityQueue is: \n"; 
   print_r($pqueue); 
   
   echo "\nThe element at front of queue is: "; 
   print_r($pqueue->peek()); 
?>

输出

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

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

The element at front of queue is: India

示例 2

现在,我们将使用队列元素中不同优先级的不同数据类型,并使用 **peek()** 函数获取队列前端的值。

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

   $pqueue->push(100, 5);
   $pqueue->push("String", 2);
   $pqueue->push([1, 2, 3], 8);
   
   $topElement = $pqueue->peek();
   
   if (is_array($topElement)) {
       echo 'Array: ';
       print_r($topElement);
   } else {
       echo $topElement;
   }
?> 

输出

这将生成以下输出:

Array: Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

示例 3

在以下示例中,我们使用 **peek()** 函数查找队列中的 peek 元素,但这里我们使用负数作为优先级。因此,在示例中,-1 高于 -5 和 -10。

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

   $queue->push("Low Priority", -1);
   $queue->push("Medium Priority", -5);
   $queue->push("High Priority", -10);
   
   echo $queue->peek(); 
?> 

输出

以下是上述代码的输出:

Low Priority

示例 4

现在,在下面的代码中,我们使用整数作为优先级,并使用自定义对象作为元素。

<?php
   // Define class here
   class Task {
      public $name;
      public function __construct($name) {
          $this->name = $name;
      }
  }
  
  $pqueue = new \Ds\PriorityQueue();
  
  $pqueue->push(new Task("Task 1"), 10);
  $pqueue->push(new Task("Task 2"), 20);
  $pqueue->push(new Task("Task 3"), 5);
  
  $highestPriorityTask = $pqueue->peek();
  echo $highestPriorityTask->name;
?> 

输出

这将创建以下输出:

Task 2
php_function_reference.htm
广告