Note
I made this repo while following the book to learn go and DSA. The implementations are not gonna be the most performant. Consider looking for another repo if you need any of there in your serious project.
- Stack
- Queue
- Double Linked List
- Circular Buffer
- Deque (segmented array), ⛔ Not possible in Go
Documentation
go doc -all ./linear | bat -l go- Binary Search Tree
- AVL Tree
- Heap (min/max)
- Trie
- LSM Tree
Documentation
for p in ./trees/ ./trees/avl ./trees/heap; do
go doc -all "$p"; done | bat -l go- Unweighted
- Weighted
- Directed
- DAG
- Union Find
Documentation
go doc -all ./sets/ | bat -l go- Bloom filter
- Hyper Log Log
- Kadane's Algorithm
- Euclidean GCD
- Fibonacci
- Miller Rabin prime test
- Modular Arithmetic
- Sieve of Eratosthenes
Documentation
go doc -all ./algo | bat -l go- Priority Queue
- Heap Sort
- BFS Breadth-First Search
- Dijkstra's
- DFS & BFS
- Topological Sort with Kahn's algorithm
Documentation
go doc -all ./graphs | bat -l gogo test ./tests/...Unit tests and explanations written by claude