queue
:中的后点应该在哪里
- 将插入新元素的位置
- 队列最后一个元素所在的位置
根据我的研究,我得到了以上两种情况的答案。
我认为TailPointer
指向添加的最后一个元素,而不是添加新元素的空槽。我有几个原因:
-
要获取最后一个元素,可以直接在
TailPointer
中获取值,该值更像名称。而不是使用TailPointer - 1
。 -
如果您有一个
Array
作为Queue
的后备DataStore,那么检查tailPointer == dataStore.Length - 1
是很自然的(因为基于0的索引是最常见的( -
此外,如果
DeQueue
您的数据,您将把数据包装到初始索引(Head Pointer之前的索引(。(参考这个和这个( -
如果队列中没有数据,只需将TailPointer设置为
-1
即可。