使用 SplPriorityQueue 实现优先级队列

PHP 已经内置了使用 SPL 实现优先队列的支持。我们可以使用 SplPriorityQueue 类来实现优先级队列。下面是之前使用链表的示例,但这次我们选择了 SPL:

Unresolved include directive in modules/ROOT/pages/ch04/ch4-11.adoc - include::example$Chapter04/9.php[]

这将产生与链接列表示例相同的结果。扩展到我们自己的 MyPQ 类的另一个好处是,我们可以定义是按升序还是降序排序。在这里,我们选择了降序,使用 PHP 组合比较运算符或飞船运算符进行排序。

大多数情况下,优先队列都是使用堆实现的。当我们继续学习堆章节时,也将使用堆来实现优先队列。