实现循环队列
当我们使用标准队列时,每次删除一个项目,都必须重新缓冲整个队列。为了解决这个问题,我们可以使用圆形队列,即后队列紧跟前队列,形成一个圆形。这种特殊类型的队列需要对 enqueue
和 dequeue
操作进行特殊计算,并考虑队列的后方、前方和极限。圆形队列总是固定队列,也称为圆形缓冲区或环形缓冲区。下图显示了循环队列的表示方法:

我们可以使用 PHP 数组来实现循环队列。由于我们必须计算后部和前部的位置,因此可以高效地使用数组。下面是一个循环队列的示例:
Unresolved include directive in modules/ROOT/pages/ch04/ch4-12.adoc - include::example$Chapter04/10.php[]
由于我们将 0 作为前置标记,队列的总大小将为 limit - 1。 |