01
Unit 1: Dynamic Data Structures (Linked Lists)
Limitations of arrays and vectors, Node structure and dynamic memory allocation, Singly Linked List (Creation, Insertion, Deletion, Reversal), Doubly Linked List (Memory overhead, Bidirectional traversal), Circular Linked Lists, Applications of Linked Lists (Polynomial arithmetic, Sparse Matrix representation).
02
Unit 2: Restricted Linear Structures (Stacks and Queues)
The Stack ADT, Array vs. Linked List implementation of Stacks, System Stack and Recursion, Queue ADT, Linear Queue limitations, Circular Queue implementation, Deque (Double Ended Queue), Priority Queue fundamentals, Applications (Expression conversion/evaluation, Job scheduling).
03
Unit 3: Hierarchical Structures (Binary Trees)
Tree terminology, Binary Tree representations (Sequential Array vs. Linked Nodes), Tree Traversals (In-order, Pre-order, Post-order, Level-order), Construction of trees from traversals, Threaded Binary Trees, Binary Search Trees (BST), Operations on BST (Search, Insert, Delete), The Skewed Tree problem.
04
Unit 4: Advanced Trees and Heaps
Self-Balancing properties, AVL Trees (Balance Factors, Left/Right Rotations), Red-Black Trees (Properties, Color invariants, Insertion logic), Heaps (Max-Heap and Min-Heap structures), Array representation of Heaps, Heapify operations, Heap Sort logic, Introduction to B-Trees for external storage.
05
Unit 5: Graphs
Graph terminology (Vertex, Edge, Weight, Degree), Graph Representations (Adjacency Matrix, Adjacency List, Adjacency Multi-list), Storage complexity of representations, Graph Traversals (Breadth-First Search, Depth-First Search), Cycle detection in graphs, Connectivity (Connected components).