Sommario:
Definizione - Cosa significa Ring Buffer?
Un buffer ad anello è una struttura di dati che viene trattata come circolare sebbene la sua implementazione sia lineare. Un buffer circolare viene in genere utilizzato come coda di dati. Un buffer circolare è un modo diffuso per implementare un flusso di dati perché il codice può essere compatto.
Un buffer ad anello è anche noto come buffer circolare, coda circolare o buffer ciclico.
Techopedia spiega Ring Buffer
Un buffer ad anello è un'implementazione comune di una coda. È popolare perché le code circolari sono facili da implementare. Mentre un buffer ad anello è rappresentato come un cerchio, nel codice sottostante, un buffer ad anello è lineare. Un buffer ad anello esiste come un array a lunghezza fissa con due puntatori: uno che rappresenta la testa di una coda e un altro che rappresenta la coda. In una coda, gli elementi vengono aggiunti alla coda della coda in modo "FIFO" (primo in prima uscita). I primi elementi della coda vengono rimossi dalla testa nell'ordine in cui sono stati aggiunti. Quando il puntatore head arriva alla fine dell'array, si avvolge attorno al primo elemento dell'array. Tutti i dati nel buffer vengono sovrascritti. L'intestazione della coda è diversa dal primo elemento nell'array reale ed entrambi i puntatori si spostano quando gli elementi vengono aggiunti e rimossi.
Uno svantaggio di un buffer ad anello è la sua dimensione fissa. Per le code in cui gli elementi devono essere aggiunti e rimossi nel mezzo, non solo all'inizio e alla fine di un buffer, un'implementazione come elenco collegato è l'approccio preferito.
