Data Structures and Algorithms (DSA)
Category Topics Key Python
Concepts/Details Implementations/Function
s
1. Basics of Introduction to DSA, Understanding timeit module, Manual
DSA Time and Space Asymptotic Analysis Analysis
Complexity, Big-O (Big-O, Big-Θ,
Notation Big-Ω), Analyzing
Algorithm Efficiency
2. Arrays 1D and 2D Arrays, Sequential Data Slicing, list.append(),
Operations (Insert, Representation, list.pop(),
Delete, Search), Indexing, Sliding list.index()
Prefix Sum Window Technique,
Two-Pointer
Technique
3. Strings String Manipulation, String Immutability, str.split(),
Pattern Matching, Substring Search str.join(),
Palindrome Checking, (KMP, Rabin-Karp), str.replace(), re
Anagrams String Encoding and
module
Decoding
4. Linked Singly Linked List, Node Creation, Custom Classes with Node
Lists Doubly Linked List, Insertion, Deletion, objects
Circular Linked List Reversal, Merging
Linked Lists
5. Stacks Stack Operations LIFO Structure, list.append(),
(Push, Pop, Peek), Implementing Stacks list.pop(),
Applications using Lists collections.deque()
(Balanced
Parentheses, Infix to
Postfix)
6. Queues Queue Operations FIFO Structure, collections.deque(),
(Enqueue, Dequeue, Circular Queue queue.Queue,
Front), Circular Implementation queue.PriorityQueue
Queue, Priority
Queue
7. Recursion Basics of Recursion, Recursive Problem Recursive Functions,
Tail Recursion, Solving, Recurrence Memoization
Recursive Relations, Avoiding
Backtracking Stack Overflow
8. Trees Binary Trees, Binary Preorder, Inorder, Custom Classes for Node,
Search Trees (BST), Postorder Traversals, Traversal with Recursion
AVL Trees, Tree Height Balancing,
Traversals Searching and
Deletion
9. Graphs Graph Directed/Undirected collections.defaultdi
Representation Graphs, Cyclic ct, heapq for Priority
(Adjacency List, Detection, Shortest Queues
Adjacency Matrix), Paths (Dijkstra,
DFS, BFS Bellman-Ford)
10. Sorting Bubble Sort, Stable and Unstable Custom Sorting
Algorithms Selection Sort, Sorting, Divide and Implementations, Built-in
Insertion Sort, Merge Conquer Techniques Sorting (sorted(),
Sort, Quick Sort, list.sort())
Heap Sort
11. Searching Linear Search, Binary Sequential and Custom Implementations,
Algorithms Search, Ternary Divide-and-Conquer bisect module for Binary
Search, Interpolation Search Techniques Search
Search
12. Hashing Hash Tables, Hash Implementing dict, hash()
Functions, Collision Dictionaries with
Handling (Chaining, Hashing, Handling
Open Addressing) Collisions
13. Heaps Min-Heap, Max-Heap, Complete Binary heapq module, Custom
Heap Operations Tree Properties, Heap Implementations
(Insert, Delete, Applications in
Extract Min/Max), Priority Queues,
Heapify Heap Sort
14. Greedy Activity Selection, Making Locally Custom Implementations
Algorithms Knapsack Problem Optimal Choices,
(Fractional), Huffman Optimization
Coding Problems
15. Dynamic Memoization, Breaking Problems functools.lru_cache
Programmin Tabulation, 0/1 into Sub-Problems,
g Knapsack, Longest Optimizing Recursive
Common Problems
Subsequence (LCS),
Longest Increasing
Subsequence (LIS)
16. Divide Merge Sort, Quick Solving Problems by Custom Implementations
and Conquer Sort, Binary Search Dividing into
Sub-Problems,
Recurrence
Relations
17. N-Queens Problem, Recursive Problem Recursive Functions
Backtracking Sudoku Solver, Solving with
Subset Sum Constraints
18. Bit Bitwise Operators Efficient Arithmetic &, `
Manipulation (AND, OR, XOR, NOT), Operations Using
Counting Set Bits Bits
19. Trie Insert/Search/Delete Storing Strings in Custom Implementations
(Prefix Tree) Operations, Hierarchical Format Using Classes
Applications
(Autocomplete, Spell
Checker)
20. Graph Minimum Spanning Graph Traversals Custom Implementations
Algorithms Tree (Kruskal, Prim), and Pathfinding,
Shortest Path Dependency
(Dijkstra, Resolution
Floyd-Warshall),
Topological Sort
21. Advanced Segment Trees, Range Queries, Custom Implementations
Topics Fenwick Trees, Union-Find
Disjoint Set Union Operations, Pattern
(DSU), KMP Matching Algorithms
Algorithm