ਇੱਕ circular buffer ਇੱਕ ਸਥਿਰ ਆਕਾਰ ਦੀ array ਹੈ ਜਿਸ ਨੂੰ ਇਸ ਤਰਾਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ ਇਸ ਦੇ ਸਿਰੇ ਇੱਕ ਰਿੰਗ ਵਿੱਚ ਜੁੜੇ ਹਨ। ਦੋ ਇੰਡੀਸਜ਼ — head (ਪੜ੍ਹਨਾ) ਅਤੇ tail (ਲਿਖਣਾ) — ਅੱਗੇ ਵਧਦੇ ਹਨ ਅਤੇ modulo ਗਣਿਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਘੁੰਮਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਸਿਰਜਣ ਤੋਂ ਬਾਅਦ ਕੋਈ allocation ਨਹੀਂ ਹਨ ਇੱਕ O(1) FIFO ਕਤਾਰ ਮਿਲਦੀ ਹੈ।
ਵਰਯਿੰਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
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)
