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

Documentation

go doc -all ./linear | bat -l go

Tree — hierarchical, parent/child relationships

  • 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

Graph

  • Unweighted
  • Weighted
  • Directed
  • DAG

Sets

  • Union Find

Documentation

go doc -all ./sets/ | bat -l go

Probabilistic

  • Bloom filter
  • Hyper Log Log

Algorithms ωψγ

Etc

  • Kadane's Algorithm
  • Euclidean GCD
  • Fibonacci
  • Miller Rabin prime test
  • Modular Arithmetic
  • Sieve of Eratosthenes

Documentation

go doc -all ./algo | bat -l go

Heaps & Trees

  • Priority Queue
  • Heap Sort
  • BFS Breadth-First Search

Graphs

  • Dijkstra's
  • DFS & BFS
  • Topological Sort with Kahn's algorithm

Documentation

go doc -all ./graphs | bat -l go

Tests

go test ./tests/...

External references

https://xlinux.nist.gov/dads/

Disclosure

Unit tests and explanations written by claude

S
Description
No description provided
Readme 205 KiB
Languages
Go 100%