This repository is a collection of algorithms and data structures python.Included are some helpful examples of more advanced Python concepts like decorators and abstract base classes. Please check the anaconda-project.yml
file for dependencies and package versions.
- Arrays
- Kadane's algorithm
- Dutch Flag Partition
- Graphs
- Directed and Undirected graphs
- Fundamental traversals
- Hashtables (dictionary)
- Rubin-Karp algorithm
- Implementations with linear probing for hash collisions
- Linked Lists
- Doubly linked list
- Stack and Queues
- Indexed Priority Queues
- Trees
- Heaps
- Fibonacci heaps
- D-ary heaps
- Tries
- Binary Search Trees
- AVL Balancing Trees
- Heaps
- Dynamic Programming
- Recursion
- Towers of Hanoi
- Coin change problems
- String Permutations
- Sorting
- Merge sort
- Radix sort
- Quick sort
- Heap sort
- Traversals
- Breadth First Search
- Depth First Search
- Graph Algorithms
- Dijkstra's algorithm
- Prim's algorithm
- Bellman Ford algorithm
- Kruskal's algorithms
- Backtracking
- Knight's tour problem
- N-Queens problem