e3b41197859eb87d6f20527f1a63ee6d2ba7bf01
Data Structures & Algorithms in Go
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.
Linear
- Stack
- Queue
- Double Linked List
- Circular Buffer
- Deque (segmented array), ⛔ Not possible in Go
Tree — hierarchical, parent/child relationships
- Binary Search Tree
- AVL Tree
- Heap (min/max)
- Trie
Graph
- Unweighted
- Weighted
- Directed
- DAG
Sets
- Union Find
Probabilistic
- Bloom filter
- Hyper Log Log
Algorithms ωψγ
Etc
- Kadane's Algorithm
- Euclidean GCD
- Fibonacci
- Miller Rabin prime test
- Modular Arithmetic
- Sieve of Eratosthenes
Heaps & Trees
- Priority Queue
- Heap Sort
- BFS Breadth-First Search
Graphs
- Dijkstra's
- DFS & BFS
- Topological Sort with Kahn's algorithm
Documentation
Linear Structures
go doc -all ./linear | bat -l go
Algorithms
go doc -all ./algo | bat -l go
Sets
go doc -all ./sets/ | bat -l go
Trees
for p in ./trees/ ./trees/avl ./trees/heap; do go doc -all "$p"; done | bat -l go
Graphs
go doc -all ./graphs | bat -l go
Tests
go test ./tests/...
External references
Disclosure
Unit tests and explanations written by claude
Description
Languages
Go
100%