[data-structure]:循环队列的尾指针

时间:2011-09-08 02:39:17

标签: queue tail cyclic

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

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

为什么?

我想我可以实现Cyclic Queue,尾指针指向最后一个元素,而不是最后一个元素。

2 个答案:

答案 0 :(得分:1)

你确实可以这样实现它。尾部指针指向最后一个元素后面的位置1有一定的对称性:

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

在任何一种情况下,您都需要做更多的工作来区分完整的循环队列和空循环队列。 Wikipedia article on circular buffers中讨论了一些替代方案(包括以自己的方式做事)。

答案 1 :(得分:0)

看起来这就是你使用的确定队列是空还是满的方式。

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