📅  最后修改于: 2023-12-03 15:18:21.141000             🧑  作者: Mango
PHP中的SplPriorityQueue是一个优先队列,具有以下特性:
SplPriorityQueue提供了一组API来协调这些操作,并使优先队列行为符合上述要求。
extract
方法是SplPriorityQueue类的一个方法,用于从队列中提取并删除具有最高优先级的元素。
public mixed SplPriorityQueue::extract ( void )
该方法没有参数。
如果优先队列不包含任何元素,则返回null。
如果队列非空,则返回具有最高优先级的元素。该元素具有最高的优先级,并且如果具有相同优先级的其他元素,则按照FIFO原则返回先添加的那个元素。此元素从队列中删除。
$queue = new SplPriorityQueue();
$queue->insert('A', 3);
$queue->insert('B', 6);
$queue->insert('C', 2);
echo $queue->extract(); // 输出:B
echo $queue->extract(); // 输出:A
echo $queue->extract(); // 输出:C
echo $queue->extract(); // 输出:null
在这个例子中,优先队列$queue中添加了三个元素,并按照指定的优先级排序,使用extract方法取出具有最高优先级的元素。循环执行echo $queue->extract()
可以看到结果按照B、A、C的顺序提取。最后使用extract方法提取一个空队列返回null。