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