Bucket Brigade
They are used extensively in Apache. Basically they are a linked list that loops around on itself in a ring. I am not sure if they are used outside of Apache and Apache modules but they fit the bill as a cool yet lesser known data structure. A bucket is a container for some arbitrary data and a bucket brigade is a collection of buckets. The idea is that you want to be able to modify and insert data at any point in the structure.
Lets say that you have a bucket brigade that contains an html document with one character per bucket. You want to convert all the <
and >
symbols into <
and >
entities. The bucket brigade allows you to insert some extra buckets in the brigade when you come across a <
or >
symbol in order to fit the extra characters required for the entity. Because the bucket brigade is in a ring you can insert backwards or forwards. This is much easier to do (in C) than using a simple buffer.
Some reference on bucket brigades below:
Apache Bucket Brigade Reference
Introduction to Buckets and Brigades