Pointers Revision - Learn from here
Array - Learn from here
Complexity Analysis - Learn from here
Practice problems for warm up and complexity analysis
Singly Linked List : Learn from here
- Print the linked list - Solve here | Learn here
- Count the number of nodes in the linked list (Iterative & Recursive) - Solve here | Solution here
- To determine if a particular item exists in the list (Iterative & Recursive) - Learn from here
- To count the number of times as item occurs in the list (Iterative & Recursive) - Practice here | Solution here
- To determine the average of the items in the list - Learn from here
- To print all the items smaller than the average of the items in the list - Learn from here
- To determine the smallest item in the list (Iterative & Recursive) - Learn from here
- To print the reverse of the list (Iterative & Recursive) - Solve here | Learn here
- Recursive code to reverse the linked list - Learn from here
- To append a node into the list (After and Before- 1st Node/Last Node/Middle Node) (Iterative & Recursive) - Solve here | Learn from here
- To remove a node from the list (position based) (1st Node/Last Node/Middle Node) (Iterative & Recursive) - Solve here | Learn here
- Remove all nodes from the list - Learn from here
- Remove all the occurrences of a particular item from the list - Learn from here
- Create a sorted linked list - Solve here | Learn here
- Union and Intersection of two lists - Solve Intersection | Solve Union | Learn from here
Circular Linked List - Learn here
- Append node in circular linked list - Learn from here
- Print a circular linked list - Learn from here
- Determine if a particular item exists in the circular linked list - Learn from here
Doubly Linked List - Learn here
- Print the doubly linked list - Learn from here
- Insert node after a particular node in a doubly linked list (First, last and middle) - Learn from here
- Insert node before a particular node in a doubly linked list (First, last and middle) - Learn from here
- Remove a particular node from a doubly linked list (first, last and middle) - Learn from here
- Create, push and pop in stack (array representation & linked list representation) - Learn from here
Stacks - Learn from here
- Infix to Postfix Using Stack - Solve here | Learn from here
- Prefix to Postfix Conversion - Learn from here
- Prefix to Infix Conversion - Learn from here
- Check for Balanced Brackets in an expression (well-formedness) using Stack - Solve here | Learn from here
- Iterative Tower of Hanoi - Solve here | Learn from here
- Append node in circular linked list - Learn from here
Queue - Learn from here
- Create Queue (array representation & linked list representation) , Insert into queue, delete from queue - Solve here | Learn from here
- print a queue (array representation & linked list representation) - Solve here | Learn from here
- Create Circular Queue (array representation & linked list representation) , Insert into queue, delete from queue - Solve here | Learn from here
- Print a Circular Queue (array representation & linked list representation) - Solve here | Learn from here
Tree - Learn from here
- Create a Binary Search Tree - Node Insertion using recursion - Learn here
- Insert into BST (Iterative) - Solve Here | Learn here
- Tree traversal (preOrder, inOrder,postOrder) (Recursive) - Pratice preOrder Traversal | Pratice inOrder Traversal | Pratice postOrder Traversal | Learn here
- Count the number of nodes in a BST - Practice here | Learn here
- Count the number of leaves in a BST - Practice here | Learn here
- Determine if a particular item exists in BST - Learn here
- Determine the height of a BST - Practice here | Learn from here
- Determine the level of an item in the BST (Iterative & Recursive) - Practice here | Learn here
- Print the BST level by level - Practice here | Learn here
- Convert the BST into its mirror image (Change that tree) - Practice here | Learn here
- Create the mirror image of BST (Create new tree) - Learn from here
- Determine the sibling of an item in a BST - Learn from here
- Non recursive traversal of BST (using stack)(preOrder, inOrder, postOrder) - Learn here
- Threaded Binary Tree (TBT) {create, insert,traversal : {preOrder,inOrder,postOrder})} - Learn from here
Heap - Learn from here
- Graph - Learn from here
- Graph Terminology - Learn from here
- Traversal : BFS & DFS - Learn from here
- Undirected : Cycle Detection, Bipartite Check - Learn from here
- Directed : Cycle Detection, Strongly Connected Components (Kosaraju’s Algo) - Learn from here
- Minimum Spanning Trees (Kruskals & Prims) - Learn from here
- Shortest Path (BFS, Dijkstras, Bellman Ford, Floyd-Warshalls) - Learn from here
-
Sorting :
- Bubble Sort - Solve here | Learn from here
- Selection Sort - Solve here | Learn from here
- Insertion Sort - Solve here | Learn from here
- Merge Sort - Solve here | Learn from here
- Quick Sort - Solve here | Learn from here
- Heap Sort - Solve here | Learn from here
-
Searching :
- Linear Search - Solve here | Learn from here
- Binary Search - Solve here | Learn from here
-
Greedy Algorithms - Learn from here
- Activity Selection Problem - Solve here | Learn from here
- Greedy Coloring of Graph - Solve here | Learn from here
- Job Sequencing with Deadlines - Solve here | Learn from here
- Huffman Coding - Solve here | Learn from here
- Dijkstra's Algorithm - Solve here | Learn from here
- Kruskal's Algorithm - Solve here | Learn from here
-
Divide & Conquer - Learn from here
- Master theorem - Learn from here
- Majority Element problem - Solve here | Learn from here
- Kth largest element in an array -Solve here | Learn from here
- Unique divide and conquer - Solve here | Learn from here
-
Dynamic Programming:
- Longest increasing subsequence (Simple array dp) - Solve here | Learn from here
- Longest common subsequence (2d string dp) - Solve here | Learn from here
- Minimum Path Sum Triangle (Matrix dp) - Solve here | Learn from here
- 0-1 Knapsack (Knapsack Problem) - Solve here | Learn from here
- Best time to buy and sell stock (Adhoc) - Solve here | Learn from here
- Word break (Dp backtrack) - Solve here | Learn from here
- Binary tree maximum path sum (Tree dp) - Solve here | Learn from here
- Unique binary search trees (Multiply dp) - Solve here | Learn from here
- Word-break (Breaking words) - Solve here | Learn from here
- Best time to buy and sell stock (Suffix and prefix dp) - Solve here | Learn from here
-
Amortized analysis - Learn from here
- Counting bits - Solve here | Learn from here
- Range Module - Solve here | Learn from here