Un circular buffer este un array de dimensiune fixă tratat ca și cum capetele sale ar fi unite într-un inel. Doi indecși — head (citire) și tail (scriere) — avansează și se înfășoară folosind aritmetica modulo, oferind o coadă FIFO O(1) fără alocare după creare.
Cum funcționează înfășurarea
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)
