Эффективный способ реализации индексированной очереди (где элементы могут быть извлечены по индексу в O (1) time)?

Доступ к элементам по индексу с помощью ElementAt, очевидно, не является разумным выбором, согласно .NET queue ElementAt performance .

Есть ли там альтернативная общая структура данных, которая будет подходить для этого требования?

Моя очередь имеет фиксированную емкость.

Согласно записи MSDN в классе Queue , « Этот класс реализует очередь как круговой массив ", но, похоже, он не раскрывает никаких свойств индексации.

Обновление : Я обнаружил реализацию C5 CircularQueue . Кажется, это соответствует всем требованиям, но я бы предпочел не импортировать другую внешнюю библиотеку, если это возможно.

9
задан Community 23 May 2017 в 11:46
поделиться