I've been studying my fundamental data structures a bunch recently, trying to make sure I've got them down cold.
By "fundamental", I mean the real basic ones. Fancy ones like Red-Black Trees and Bloom Filters are clearly worth knowing, but they're usually either enhancements of fundamental ones (Red-Black Trees are binary search trees with special properties to keep them balanced) or they're only useful in very specific situations (Bloom Filters).
So far, I'm "fluent" in the following data structures:
- Arrays
- Linked Lists
- Stacks/Queues
- Binary Search Trees
- Heaps/Priority Queues
- Hash Tables
However, I feel like I'm missing something. Are there any fundamental ones that I'm forgetting about?
EDIT: Added these after posting the question
- Strings (suggested by catchmeifyoutry)
- Sets (suggested by Peter)
- Graphs (suggested by Nick D and aJ)
- B-Trees (Suggested by tloach)
- I'm a little on-the-fence about whether these are too fancy or not, but I think they're different enough from the fundamental structures (and important enough) to be worth studying as fundamental.