String searching and to a broader extent pattern matching are some of the most fundamental operations you can do on a computer. Much research has been done into pattern matching algorithms using techniques ranging from brute fo

In the past I've primarily used two sources as reference material while implementing AVL trees: the example in Mastering Algorithms with Perl from O'Reilly, and Robert Sedgewick's description of the implementation from his book Algorithms. Both of thes

Randomized Meldable Heaps

When it comes to priority queues, the binary heap is the go-to data structure when it comes to implementation, and with good reason. Binary heaps offer worst-case logarithmic complexity for all operations that i

If you were stuck on a desert island with just one data structure, which would it be and why?

This is a silly but fun question, and after giving it some thought, my answer most likely shouldn't surprise most readers: A balanced binary se

Bloom Filters

Bloom filters have been around for a while, 1970 to be exact. They're not exactly the star of any university data structures class. There are much "sexier" (yeah, i know.) data structures like self balancing search trees, hash t