Циклический буфер — это массив фиксированного размера, который рассматривается так, как будто его концы соединены в кольцо. Два индекса — head (чтение) и tail (запись) — продвигаются и оборачиваются с помощью модульной арифметики, обеспечивая очередь FIFO O(1) без выделения памяти после создания.
Как работает обвязка
text
capacity 5, after writing A,B,C,D and reading A,B:
index: 0 1 2 3 4
[ . ][ . ][ C ][ D ][ . ]
head^ tail^ (tail wraps to 0 next write)
