📅  最后修改于: 2023-12-03 15:33:31.235000             🧑  作者: Mango
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,并且堆中的元素也相应地被删除和重新调整。