[在队列后面的位置:1.放置新元素的位置。2.放置队列最后一个元素的位置。
根据我的研究,我得到了上述两个案例作为答案。
我想说TailPointer指向最后添加的元素,而不是要添加新元素的空白位置。我有几个原因:
TailPointer
如果您有一个Array作为Queue的后备数据存储,检查tailPointer == dataStore.Length - 1是很自然的(因为最常见的是基于0的索引)
Array
Queue
tailPointer == dataStore.Length - 1
另外,如果您将数据DeQueue,则将数据包装到初始索引(在Head Pointer之前的索引)。 (请参阅this和this)
DeQueue
如果队列中没有数据,则只需将TailPointer设置为-1。
-1