An implementation in Rust of the data structures in the free book Open Data Structures (edition 0.1Gβ) by Pat Morin. Thanks to the author for making this knowledge accessible to everybody.
The goal is to give Rust learners didactic implementations in order to learn both the language and the data structures.
The book can be read in different versions that differ in the implementation language (Pseudocode, C++, Java and Python at the time of writing this). This repo implement the data structures featured in the pseudocode version.
Straightforward implementations of the book's contents, leveraging the tools offered by Rust's standard library. Unit tests and trait implementations included.
You won't find an optimized, production ready library that may sacrifice clarity for performance.
- Array based lists
- ✔️ ArrayStack
- ✔️ ArrayQueue
- ❌ ArrayDeque
- ❌ DualArrayDeque
- ❌ RootishArrayStack
- Linked lists
- Skip lists
- Hash tables
- Binary trees
- Random binary search trees
- Scapegoat trees
- Red-black trees
- Heaps
- Sorting algorithms
- Graphs
- Data structures for integers
- External memory searching