Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Circular Buffer

Name: Anonymous 2011-01-06 10:01

Hi /prog/

Some time ago I started to write a well designed library of useful algorithms in C. As long as I needed more stuff, I simply added pieces.

Today I'm pretty bored, so I'd like to add an implementation for circular buffers. Since however I don't really need it (it's just for fun), I'm wondering which is the most useful semantics for a circular buffer.

For instance:
[list]
[*] Is it worthy to write a primitive which applies a function on every availabe element from the oldest to the most recent?
[*] What if the buffer is full and I want to insert a new element? Should I overwrite the oldest one or should I make the request fail instead?
[/list]

Which are, in general, the kind of functionalities you'll prefer?

Name: Anonymous 2011-01-06 10:13

If by buffer you mean an array of bytes, then all that one would need to do is access it like this buff[index%length], where index is inputted, and length may be part of the structure holding the pointer to the buffer.

If you mean something else by "circular buffer", you're going to have to define it. Is it a linked list, a stack or queue or something else? All these have specific names and different behaviours and implementations. Decide exactly what semantics you want.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List