https://github.com/ikushum/lets-do-datastructure-and-algorithm
A list of Data Structures and Algorithms, their implementations and resources to learn.
https://github.com/ikushum/lets-do-datastructure-and-algorithm
algorithm data-structures python
Last synced: 16 days ago
JSON representation
A list of Data Structures and Algorithms, their implementations and resources to learn.
- Host: GitHub
- URL: https://github.com/ikushum/lets-do-datastructure-and-algorithm
- Owner: ikushum
- Created: 2018-01-01T09:37:48.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-02T14:29:47.000Z (over 7 years ago)
- Last Synced: 2025-04-11T02:45:20.010Z (6 months ago)
- Topics: algorithm, data-structures, python
- Language: Python
- Homepage:
- Size: 29.3 KB
- Stars: 6
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Algorithm & Data Structures
> Yay! Its the first day of 2018.
I have compiled together a comprehensive list of standard Algorithm and Data Structures below. As a new year resolution, my goal will be to implement all of these using python. Furthermore, as I go deeper down the list, I will be adding links to article and video resources, that I used to understand these concepts.
### Algorithmic complexity / Big-O / Asymptotic analysis
Before even getting started implementing these algorithms, its important to know about these topics :
- [HackerRank - Big O (video)](https://www.youtube.com/watch?v=v4cd1O4zkGw&t=3s)
- [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)### Data Structures (basic)
- Stacks
- [Tutorials Point - Stack](https://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm)
- [HackerRank - Stacks and Queues introduction (video)](https://www.youtube.com/watch?v=wjI1WNcIntg)
- [Harvard CS50 - Implementation of Stack (video)](https://www.youtube.com/watch?v=hVsNqhEthOk)
- [My Code School - Array Implementation of Stack (video) ](https://www.youtube.com/watch?v=F1F2imiOJfk)
- [Array Implementation of Stack (code)](Data_Structures_(basic)/stack.py)
- Queues
- [Tutorials Point - Queue](https://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm)
- [Programiz - Circular Queue](https://www.programiz.com/dsa/circular-queue)
- [My Code School - Array Implementation of Circular/Normal Queue (video)](https://www.youtube.com/watch?v=okr-XE8yTO8&t=389s)
- [Array Implementation of Queue (code)](Data_Structures_(basic)/queue.py)
- [Array Implementation of Circular Queue (code)](Data_Structures_(basic)/circular_queue.py)
- Linked Lists
- [Tutorials Point - Singly Linked List](https://www.tutorialspoint.com/data_structures_algorithms/linked_list_algorithms.htm)
- [Tutorials Point - Doubly Linked List](https://www.tutorialspoint.com/data_structures_algorithms/doubly_linked_list_algorithm.htm)
- [HackerRank - Singly Linked List (video)](https://www.youtube.com/watch?v=njTh_OwMljA&t=307s)
- [Derek Banas - Singly Linked List (video)](https://www.youtube.com/watch?v=195KUinjBpU)
- [My Code School - Doubly Linked List introduction (video)](https://www.youtube.com/watch?v=JdQeNxWCguQ)
- [Harvard CS50 - Doubly Linked List (video)](https://www.youtube.com/watch?v=FHMPswJDCvU&t=463s)
- [Singly Linked List (code)](Data_Structures_(basic)/singly_linked_list.py)
- [Doubly Linked List (code)](Data_Structures_(basic)/doubly_linked_list.py)
- Binary Search Tree
- [GeeksforGeeks - BST Insertion and Search](https://www.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/)
- [GeeksforGeeks - BST Deletion](https://www.geeksforgeeks.org/binary-search-tree-set-2-delete/)
- [HackerRank - Tree/Binary-Search-Tree Introduction (video)](https://www.youtube.com/watch?v=oSWTXtMglKE)
- [Joe James - BST Insertion, Search and Traversal (video)](https://www.youtube.com/watch?v=YlgPi75hIBc&t=358s)
- [MyCodeSchool - BST Deletion (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&t=864s)
- [BST implementation (code)](Data_Structures_(basic)/binary_search_tree.py)
- Heap (Binary Heap) / Priority Queue
- [Hacker Earth - Heaps/PriorityQueues](https://www.hackerearth.com/practice/data-structures/trees/heapspriority-queues/tutorial/)
- [Cacti Council - Heaps/PriorityQueues Introduction (video)](https://www.youtube.com/watch?v=qXdt1AHMB2o&t=637s)
- [HackerRank - Heaps/PriorityQueues Implementation (video)](https://www.youtube.com/watch?v=t0Cq6tVNRBA&t=305s)
- [Heap (code)](Data_Structures_(basic)/heap.py)
- [Priority Queue (code)](Data_Structures_(basic)/priority_queue.py)### Data Structures (advanced)
- Trie/PrefixTree
- [GeeksForGeeks - Trie (Insert and Search) ](https://www.geeksforgeeks.org/trie-insert-and-search/)
- [HackerRank - Trie Introduction (video)](https://www.youtube.com/watch?v=zIjfhVPRZCg&t=162s)
- [PersistentProgramming - Trie Implementation (video)](https://www.youtube.com/watch?v=Xt2ouYSxWkw)
- [Trie (code)](Data_Structures_(advanced)/trie.py)
- Segment trees
- [HackerEarth - Segment Tree)](https://www.hackerearth.com/practice/notes/segment-tree-and-lazy-propagation/)
- [Algorithms Live - Segment Tree](https://www.youtube.com/watch?v=Tr-xEGoByFQ&t=1691s)
- [Segment Tree (code)](Data_Structures_(advanced)/segment_tree.py)
- Fenwick tree or Binary indexed tree(BIT)
- Disjoint data structures### Sorting Algorithms
- Selection
- Insertion
- Heapsort
- Quicksort
- Merge sort### Graph Algorithms
- Breadth first search (BFS)
- Depth first search(DFS)
- Strongly connected components (SCC)
- Minimum spanning tree(MST)
- Topological sort### Search Techniques
- Linear search
- Binary search
- Ternary search
- Hash Table
- Meet in the middle
- Interpolation Search### Dynamic programming
- Fibonacci Number Series
- Rod Cutting
- Knapsack
- Tower of Hanoi
- Dijkstra
- Floyd-Warshallx
- Matrix chain multiplication### Number theory
- Modular arithmetic
- Fermat’s theorem
- Chinese remainder theorem(CRT)
- Euclidean method for GCD
- Logarithmic Exponentiation
- Sieve of Eratosthenes
- Euler's totient function### Greedy Algorithm
- Activity Selection Problem
- Huffman Coding
- Job Sequencing Problem### Computational geometry
- Graham-Scan for convex hull
- Line sweep### Game theory
- Nim game
- Grundy numbers
- Sprague-Grundy theorem.### Strings
- Knuth Morris Pratt (KMP)
- Z algorithm
- Suffix arrays/Suffix trees