DsAndAlgo
Linked List
> Basic Operations on Single Linked List > Doubly Linked List > Circular Linked list > Reverse a Linked List - ( Recursion, Stack, Iterative) > Find middle of a single Linked List > Find nth Node from end > Add first & last , second & second last ...... in O(n) - ( Recursive and Non recursive) > Linked List is Palindrome or not i> Detect Loop i> Remove Loop > Merging Point of Linked Lists ( slow and fast, hashing)
Stacks
> Stack implmentation using Array - Basic Operations > Stack implementation using LinkedStack - Basic Operations > Multiple stacks in 1 Array > Min element in a Stack in O (1) > Implement Stack using Queues i> Brackets Validation > HTML TAGS validator
Queues
> Queue Basic Operations - (ArrayQueue , LinkedQueue, Circular Queues) > Implement Queue using Stacks.
Hash Table
> Implement Hash Table with collision handling > Count the number of words in a string
Greedy Algorithms
i> Knapsack i> Job Sequencing i> Interval Scheduling i> Minimum number of Platforms required for a railway/bus station
Sorting
i> Merge Sort (recursive and non-recursive) i> Quick Sort (recursive and non-recursive) i> Heap Sort
String Algorithms
> KMP > Z Algorithm
Binary Search
i> Binary Search - Recursive and Non recursive x> Find all pairs with sum K x> Find first occurence of an integer in a sorted list with duplicates x> Rotation count of a sorted array x> Search element in a rotated sorted array x> Find missing element i>find all triplets with sum = x
Dynamic Programming
i> 0-1 Knapsack problem i> Longest Common Subsequence i> The subset sum problem i> Longest Increasing Subsequence i> The coin change problem i> Count number of ways to cover a distance i> Matrix Chain Multiplication i> Edit Distance problem for strings i> Cut the rod to maximize profit i> Minimum Jumps to reach the last element of array
Trees
i> Creating a BST i> Traversals (Inorder, Preorder and Postorder). i> Calculate Height of a Tree i> Path in the Tree ( Highest cost , Print the paths) i> Level Order Traversal i> Level Order Traversal in Spiral Form i> Reverse Level Order Traversal i> Mirror of a Tree i> Vertical Order Traversal i> Top View of a Tree i> Bottom View of a Tree i> Check is tree is valid BST or not i> Delete a Node in BST ...> Palindromic tree i> Lowest Common Ancestor i> Diameter of a Binary Tree i> Delete a Tree x> Construct a Tree from Inorder and Preorder, x> Construct a Tree from InOrder and PostOrder x> Implement Tree using Array x> Iterative Traversals (Inorder, Preorder and Postorder). x> Binary Tree to Doubly Linked List
Balanced Trees
> (AVL)(optional implementation) > Red-Black trees > Tries
Graphs
x> Graph Implementation ( Vertex List using the Hash table ) i> Edge List i> Adjacency Matrix i> Adjacency List i> Traversals - DFS & BFS i> Dijkstra's Shortest Path algorithm i> Floyd-Warshall algorithm ...> Kruskal's algorithm i> Prim's algorithm
Projects
> Tetris Game - with complete UNDO functionality. > Playlist Manager > Implement your own Database ( at least command interpreter is required
Backtracking
i> Generate all Binary strings of length n i> Print all permutations of a given string i> N-Queen Problem i> Rat in a Maze Problem
Priority Queues and Heaps
> Find median in a stream > Operations on Binary Min heap > Kth largest element in a stream > Merge K sorted linked list
Suffix Arrays
> Longest Repeated String - Overlapping > Longest Common Prefix ...> Longest Repeated String - Non - Overlapping ...> Longest Repeated String which occurs n times ...> All Anagrams in Dictionary
strings z,kmp kruskal -min spanning tree