Started this project during the Covid-19 Stay Home period to have something meaningful to do. The purpose of this project is to repeat and practice implementing common data structures and algorithms using only the language specific basic tooling, meaning all the data structures and algorithms have to be implemented.
Plan is to implement all these at least in following languages, IF there's enough time
- TypeScript (ES6) (Currently ongoing. Check marks on boxes represents TS progress)
- Python 3
- Java
- C++
- Only language specific standard tooling is allowed.
- External libraries has to be avoided as much as possible.
- Usage of already implemented algorithms, data structures, helpers and other possible libraries in this project is allowed
- A*
- Binary search
- Bloom filter
- Breadth-first iterative search
- Closest pair
- Dijkstra's algorithm
- Floyd-Warshall algorithm
- K-Way merge
- Various sorting algorithms
- Bubble sort
- Selection sort
- Insertion sort
- In-place quick sort
- Bucket sort
- Radix sort
- Travelling Salesman
- Binary search tree
- Circular queue
- Hash map
- Linked list
- Priority queue
- Queue
- Set
- Stack
- Vector
These are as listed on Wikipedia
- Abstract Factory
- Builder
- Dependency injection
- Factory method
- Lazy initialization
- Multiton
- Object pool
- Prototype
- Resource acquisition is initialization (RAI)
- Singleton