Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Computer Science data structures and algorithms in go

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages