| Topic | Details | Resources |
|---|---|---|
| Basics | Data, Pointers, Structures | |
| Linked lists | Singly Linked Lists, Doubly Linked Lists, Circular Linked Lists | notes and problems |
| Linked list Applications | Polynomial representation and operations | notes and problems |
| Stack | Operations - push, pop; overflow and underflow; implementation using array and linked lists | notes and problems |
| Stack Applications | Postfix, Infix and Prefix representations and evaluation of expressions | notes and problems |
| Queue | Operations - insert, delete; overflow and underflow; implementation using array and linked lists | notes and problems |
| Queue variations | circular queue, priority queue and heap representation | notes on circular and priority queue |
| Linked list, Stack and Queue | queue implementation using stacks, stack implementation using queues, stack and queue using linked lists | |
| Recursion | Design using recursion, recursion tree, head and tail recursion, Tower of Hanoi | notes and problems |
| Tree | basic terminologies and theorems, array and linked representations | |
| Tree variations | BST, AVL tree, B tree, B+ tree | |
| Tree operations | insertion, deletion, searching in BST, searching/traversal usning pre-order, post-order, in-order, level-order, rotations in AVL tree | |
| Graph | terminologies, representation using adjacency list and adjacency matrix | |
| Graph operations | sortest path using Dijkstra, spanning tree using Prim's and Kruskal's, traversal/searching using BFS, DFS | |
| Searching | linear search, binary search, interpolation search, complexity | |
| Sorting | bubble sort, insertion sort, selection sort, quick sort, merge sort, heap sort, radix sort, complexity | |
| Hashing | hash functions, collisions, linear probing, Quadratic probing. Double hashing, chaining |