队列数据结构中的 rear 指向哪里
Where should rear point in queue data structure
queue
中的后点应该放在哪里:
- 将插入新元素的地方。
- 队列最后一个元素所在的位置。
根据我的研究,我得到了以上两种情况作为答案。
我会说 TailPointer
指向添加的最后一个元素,而不是指向要添加新元素的空槽。我有几个原因:
要获取最后一个元素,您可以直接获取 TailPointer
处的值,这更像名称。而不是使用 TailPointer - 1
.
如果您有一个 Array
作为 Queue
的后备数据存储,检查 tailPointer == dataStore.Length - 1
是很自然的(因为基于 0 的索引是最常见)
此外,如果您 DeQueue
您的数据,您会将数据包装到初始索引(在 Head Pointer 之前的索引)。 (参考this and this)
如果队列中没有数据,您可以简单地将TailPointer设置为-1
。
queue
中的后点应该放在哪里:
- 将插入新元素的地方。
- 队列最后一个元素所在的位置。
根据我的研究,我得到了以上两种情况作为答案。
我会说 TailPointer
指向添加的最后一个元素,而不是指向要添加新元素的空槽。我有几个原因:
要获取最后一个元素,您可以直接获取
TailPointer
处的值,这更像名称。而不是使用TailPointer - 1
.如果您有一个
Array
作为Queue
的后备数据存储,检查tailPointer == dataStore.Length - 1
是很自然的(因为基于 0 的索引是最常见)此外,如果您
DeQueue
您的数据,您会将数据包装到初始索引(在 Head Pointer 之前的索引)。 (参考this and this)如果队列中没有数据,您可以简单地将TailPointer设置为
-1
。