There are many types of data structures, but for the subset called buffers, you really only have two basic types. FIFO and LIFO. Everything else is implementation details.
FIFO = LILO = Queue = some of your etc. Circular buffer is a common way to implement a FIFO.
LIFO = FILO = Stack = the rest of your etc.
Here's a couple links to read and learn from. Several different implementations are presented, with code. This is simple stuff, so there isn't much code. Turn them into libraries if you want.
https://www.geeksforgeeks.org/stack-data-structure/https://www.geeksforgeeks.org/queue-data-structure/As for which methods will work well for a particular task, you really need to detail the task first. Pointing you at random libraries isn't going to do you any favors, especially in the embedded world where hardware resources are limited.