Ein zirkulärer Puffer ist ein Array mit fester Größe, das so behandelt wird, als würden seine Enden zu einem Ring verbunden. Zwei Indizes — head (Lesen) und tail (Schreiben) — rücken vor und umwickeln sich mit Modulo-Arithmetik, was eine O(1) FIFO-Warteschlange mit keiner Speicherallokation nach der Erstellung ergibt.
Wie das Umwickeln funktioniert
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)
