0

在循环队列的实现中,尾指针指向队列中最后一个元素后的位置 1:

|1|2|3|4|5| | |
 ^         ^
front      tail

为什么?

我想我可以用指向最后一个元素的尾指针来实现循环队列,而不是最后一个元素。

4

2 回答 2

1

你可以,确实以这种方式实现它。让尾指针指向经过最后一个元素的位置 1 有一定的对称性:

  • front指向第一个(最旧的)使用的元素 - 下一个要读取的元素
  • tail指向第一个(最旧的)未使用元素 - 下一个要写入的元素

无论哪种情况,您都需要做更多的工作来区分完整的循环队列和空的循环队列。维基百科关于循环缓冲区的文章中讨论了一些替代方案(包括按你的方式做事)。

于 2011-09-08T02:53:04.993 回答
0

看起来这是您使用的确定队列是空还是满的实现方式。

http://en.wikipedia.org/wiki/Circular_buffer#Full_.2F_Empty_Buffer_Distinction

于 2011-09-08T02:51:55.723 回答