1. Introduction to Data Structures and Algorithms
-
1.1) Definition and Importance of Data Structures
-
1.2) Types of Data Structures
-
1.3) Abstract Data Types (ADT)
-
1.4) Algorithms – Definition, Characteristics
-
1.5) Time and Space Complexity
-
1.6) Asymptotic Notations: Big-O, Omega, Theta
-
1.7) Recursion and its Applications
-
1.8) Algorithm Analysis – Best, Worst, Average Case
2. Arrays
-
2.1) Representation and Indexing
-
2.2) One-Dimensional Arrays
-
2.3) Multi-Dimensional Arrays
-
2.4) Operations: Traversal, Insertion, Deletion, Searching
-
2.5) Applications (e.g., Matrix Operations, Polynomial Representation)
3. Strings
-
3.1) String Representation
-
3.2) String Operations (Concatenation, Comparison, Substring)
-
3.3) Pattern Matching Algorithms (Naïve, KMP, Rabin-Karp)
4. Linked Lists
-
4.1) Singly Linked List: Operations and Implementation
-
4.2) Doubly Linked List
-
4.3) Circular Linked List
-
4.4) Applications: Polynomial Arithmetic, Dynamic Memory Allocation
5. Stacks
-
5.1) Stack ADT and Representation
-
5.2) Operations: Push, Pop, Peek
-
5.3) Stack Applications: Expression Evaluation, Recursion Conversion (Infix to Postfix), Balanced Parentheses
6. Queues
-
6.1) Queue ADT and Implementation
-
6.2) Circular Queue
-
6.3) Deque (Double-Ended Queue)
-
6.4) Priority Queue
-
6.5) Applications: CPU Scheduling, Buffer Handling
7. Trees
-
7.1) Terminologies: Node, Degree, Depth, Height, etc.
-
7.2) Binary Trees and Representations
-
7.3) Tree Traversals (Inorder, Preorder, Postorder)
-
7.4) Binary Search Trees (BST)
-
7.5) AVL Trees (Height-Balanced Trees)
-
7.6) B-Trees and B+ Trees
-
7.7) Heap and Heap Sort
-
7.8) Trie and Applications
8. Graphs
-
8.1) Graph Terminology and Representations (Adjacency Matrix/List)
-
8.2) Graph Traversal: BFS and DFS
-
8.3) Minimum Spanning Tree (Prim’s and Kruskal’s Algorithms)
-
8.4) Shortest Path Algorithms: Dijkstra, Bellman-Ford
-
8.5) Topological Sort
-
8.6) Applications: Networking, Map Navigation
9. Hashing
-
9.1) Hash Functions and Techniques
-
9.2) Collision Resolution Strategies (Chaining, Open Addressing)
-
9.3) Applications: Symbol Tables, Caching
10. Sorting Algorithms
-
10.1) Bubble Sort
-
10.2) Selection Sort
-
10.3) Insertion Sort
-
10.4) Merge Sort
-
10.5) Quick Sort
-
10.6) Heap Sort
-
10.7) Radix Sort, Counting Sort, Bucket Sort
-
10.8) Comparison of Sorting Algorithms
11. Searching Algorithms
-
11.1) Linear Search
-
11.2) Binary Search
-
11.3) Interpolation Search
-
11.4) Search in Rotated Sorted Array
12. Advanced Topics (Optional / Elective Modules)
-
12.1) Greedy Algorithms
-
12.2) Divide and Conquer Algorithms
-
12.3) Dynamic Programming
-
12.4) Backtracking
-
12.5) Branch and Bound
-
12.6) Amortized Analysis