📜  PHP SplHeap extract()函数(1)

📅  最后修改于: 2023-12-03 15:33:31.235000             🧑  作者: Mango

PHP SplHeap extract()函数

PHP SplHeap extract()函数用于从堆中提取出最小(或最大)元素并删除它,同时重新调整堆中的元素,返回被提取的最小(或最大)元素。

语法
public function extract(): mixed
参数

无参数。

返回值

返回被提取的最小(或最大)元素。

示例
class MinHeap extends SplHeap
{
    public function compare($a, $b)
    {
        return $a - $b;
    }
}

$heap = new MinHeap();

$heap->insert(10);
$heap->insert(5);
$heap->insert(15);

echo $heap->extract(); // 5
echo $heap->extract(); // 10
echo $heap->extract(); // 15

在上面的例子中,首先我们定义了一个MinHeap类,继承自SplHeap类,并覆写了compare()方法,用于比较元素大小。

然后,我们创建了一个MinHeap实例$heap,并向其中插入了3个元素:10、5、15。

接下来,我们调用$heap->extract()3次,分别得到被提取的最小元素5、10、15,并且堆中的元素也相应地被删除和重新调整。

注意事项
  • 本函数只能用于实现最小堆(MinHeap)和最大堆(MaxHeap)。
  • 在调用本函数之前,必须先向堆中插入至少一个元素。
  • 如果堆为空,本函数将返回null。
  • 提取出的元素不再存在于堆中。如果需要保留它,应先取出并保存到变量中。