In the word of Richard Feynman
What I cannot create, I do not understand
📚 Python Implementations by @anhtumai
Linkedin
My implementations (and documentations) of basic data structures and problem
solving techniques from scratch for study purpose.
It is inspired by @quynhhgoogoo
's repo and @keon
's repo.
Data structure table:
Data Structure | Implemented | Tested |
---|---|---|
Linked List | ||
Singly linked list | ✔ | ✔ |
Doubly linked list | ✔ | ✔ |
Circular linked list | ✔ | ✔ |
Floyd cycle detection | ✔ | ✔ |
Graph | ||
Breadth first search | ✔ | ✔ |
Depth first search | ✔ | ✔ |
Djisktra shortest path algorithm | ✔ | ✔ |
Topological Sort | ✔ | ✔ |
Computing SCC | ✔ | ✔ |
Prim Minimum Spanning Tree | ✔ | |
Kruskal Minimum Spanning Tree | ✔ | |
Tree | ||
0/1 Knapsack problem (Decision Tree) | ✔ | ✔ |
Binary search tree | ✔ | ✔ |
Immutable bst | ✔ | ✔ |
AVL tree | ✔ | ✔ |
Immutable AVL tree | ✔ | ✔ |
Red Black tree | ✔ | ✔ |
Heap | ||
Min/Max heap | ✔ | ✔ |
Median Heap | ✔ | ✔ |
Heap sort | ✔ | ✔ |
Algorithm table:
Algorithm | Implemented | Tested |
---|---|---|
Divide and Conquer | ||
Merge sort | ✔ | ✔ |
Quick sort | ✔ | ✔ |
Quick select | ✔ | ✔ |
Closest Points | ✔ | ✔ |
Counting inversions | ✔ | ✔ |
Greedy | ||
Fractional Knapsack problem (Greedy) | ✔ | ✔ |
Prim Minimum Spanning Tree | ✔ | |
Kruskal Minimum Spanning Tree | ✔ |
- OS: Fedora 33
- Python 3.9