Контест Middle Дженерики и стирание обновлено
Кольцевой буфер
Условие
Реализуйте кольцевой буфер ёмкости c. Операции:
put xдобавить элемент; если буфер полон, самый старый элемент перезаписывается;getизвлечь и вывести самый старый элемент илиempty;sizeвывести число элементов.
Решение удобно оформить как обобщённый класс RingBuffer<T> на массиве.
Ввод: в первой строке c и q (1 ≤ c ≤ 10⁴, 1 ≤ q ≤ 2·10⁴), далее операции. Элементы это строки из латинских букв и цифр.
Вывод: ответы на get и size.
Пример
3 8
put a
put b
put c
put d
size
get
get
get
3
b
c
d
Как подойти
Подсказки: 2
- new T[n] не скомпилируется: используйте Object[].
- Хвост = (head + size) % capacity.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.