-
Linked Lists
- Singly Linked List
- Append
- Prepend
- Insert after a given node
- Delete node by Value
- Delete node by position
- Get length of a linked list
- Swap two nodes
- Reverse Linked list iteratively
- Reverse Linked list recursively
- Remove duplicates
- Count the Occurrences Iteratively
- Count the Occurrences Recursively
- Circular Lined List
- Append
- Prepend
- Delete
- Double Linked List
- Append
- Prepend
- Delete
- Singly Linked List
-
Stack
-
Queue
-
Trees
- Binary Tree
- Binary Search Tree
-
Graph
-
Graph Traversal
- Breadth First Search (BFS)
- Depth First Search (DFS)
-
Cycle Detection
- Cycle detection in Undirected Graph (DFS recursive)
- Cycle detection in Directed Graph (DFS recursive)
-
Topological Sort of Directed Acyclic Graph (DAG)
- Khan's Algorithm(BFS)
- Depth First Search
-
Minimum Spanning Tree
- Prim's Algorithm
- Kruskal's Algorithm
-
Shortest Path
- Dijkstra Algorithm
- Bellman Ford Algorithm
- Floyd Warshall Algorithm
- Single Source Shortest Path using BFS (SSSP)
-
Flood Filling Algorithms
- Number of Islands
- Coloring Islands
- Calculate Island sizes
- Make largest island
-
DFS-Tree and Back-Edges
- Cycle detection in an undirected graph using back-edges
- Cycle detection in a directed/undirected graph using back-edges and ancestor property
- Printing cycles using back-edges
-
Articulation Points and Bridges
- Find Articulation points and bridges
-
Strongly Connected Components
- Topological Ordering
- Kosaraju Algorithm
-
Find Path exist between given two nodes
-
Count number of edges of an Undirected Graph
-
Check Undirected Graph is a Tree
-
Delete edge from the Graph
-
Clone an Undirected Graph
-
Check an Undirected Graph is a Bipartite graph
-
-
Disjoint Set
- Quick Union Find
- Union By Rank
- Path Compression Optimization
-
Heap
- Max Heap
- Min Heap
-
Recursion
- Head and Tail recursion example
-
Trie
- Insert
- Search
-
List/Arrays
- Basic List operations (append,insert,remove,pop,reverse)
- Basic List slicing
- Basic Array operations
- Sub Array Sum
- Prefix Sum Algorithm
- Kadane's Algorithm
- Merge two sorted lists
-
Dynamic Programming 1D
- Coin change Problem
- Longest Increasing Subsequence(LIC) Problem
-
Sorting Algorithms
- Bubble Sort
- Insertion Sort
- Selection Sort