Где должна находиться задняя точка в структуре данных очереди - PullRequest
0 голосов
/ 04 мая 2020

Где должна находиться задняя точка в queue:

  1. Место, где БУДЕТ вставлен новый элемент.
  2. Место, где находится последний элемент очереди.

Согласно моим исследованиям, я получил оба ответа в качестве ответов.

1 Ответ

0 голосов
/ 04 мая 2020

Я бы сказал go с TailPointer, указывающим на последний добавленный элемент вместо пустого слота, в который вы добавили бы новый элемент. У меня есть несколько причин для этого:

  • Чтобы получить последний элемент, вы можете напрямую получить значение в TailPointer, которое больше похоже на имя. Вместо использования TailPointer - 1.

  • Если у вас есть Array в качестве резервного хранилища данных для Queue, будет естественно проверить tailPointer == dataStore.Length - 1 ( поскольку индексирование на основе 0 является наиболее распространенным)

  • Кроме того, вы будете переносить свои данные в начальные индексы (те, которые находятся до главного указателя), если вы DeQueue свои данные. (см. this и this )

  • Если в очереди нет данных, вы можете просто установить TailPointer на -1.

...