队列数据结构中的后点位置



queue:中的后点应该在哪里

  1. 将插入新元素的位置
  2. 队列最后一个元素所在的位置

根据我的研究,我得到了以上两种情况的答案。

我认为TailPointer指向添加的最后一个元素,而不是添加新元素的空槽。我有几个原因:

  • 要获取最后一个元素,可以直接在TailPointer中获取值,该值更像名称。而不是使用TailPointer - 1

  • 如果您有一个Array作为Queue的后备DataStore,那么检查tailPointer == dataStore.Length - 1是很自然的(因为基于0的索引是最常见的(

  • 此外,如果DeQueue您的数据,您将把数据包装到初始索引(Head Pointer之前的索引(。(参考这个和这个(

  • 如果队列中没有数据,只需将TailPointer设置为-1即可。

最新更新