I got to the "lesser known data structures" section and was already questioning the rest of the article:<p>> B-Tree<p>> Circular Buffer<p>Are either of these "lesser known"? Maybe if all you ever program in is higher-level languages.<p>B-trees are damn near ubiquitous in OSdev, file systems, databases, or pretty much any indexing system.<p>Ringbuffers are a hard requirement for pretty much any modern hardware interfacing. All Nvidia, AMD, etc graphics commands are issued via constructed ringbuffers. They're also pretty common in network programming, editor/IDE development, gamedev, and certainly OSdev (outside of drivers).<p>> Cuckoo Hash Table, Open-Addressing Hash Tables<p>These have the opposite status to the previous ones. They're not ubiquitous because the alternatives are better.<p>Cuckoo Hash Tables exist almost singularly as a teaching paradigm about what not to do, because it's overly complex for little benefit. Open-Addressing Hash Tables are avoided (but definitely in use out there) because they require a very good hashing algorithm to avoid clustering+collisions and a large static address space.<p>That all being said, it picks up and the later sections are much better.