Data structures are amongst the most fundamental ingredients in the recipe for efficient algorithms and good software design. Knowledge of how to create and design excellent data structures is an essential skill required in becoming an exemplary programmer. The goal of this repository is to provide a complete and thorough explanation of the most common data structures.
- 🎥Balanced Trees
- 🎥Binary Search Tree
- Splay Tree
- Bloom Filter
- 🎥Dynamic Array
- 🎥Fenwick Tree
- Set
- 🎥Hashtable
- 🎥Linked List
- 🎥Priority Queue
- Quad Tree [WIP]
- 🎥Queue
- Segment Tree
- Skip List [UNTESTED]
- 🎥Stack
- 🎥Suffix Array
- Trie
- 🎥Union Find
This repository is contribution friendly 😃. If you're a data structures enthusiast (like me!) and want to add or improve a data structure your contribution is welcome! Please be sure to checkout the Wiki for instructions.
This repository is released under the MIT license. In short, this means you are free to use this software in any personal, open-source or commercial projects. Attribution is optional but appreciated.