DATA STRUCTURES AND ALGORITHMS
DATA STRUCTURES AND ALGORITHMS
1. Introduction to Programming
Simple Programs: Writing small programs to understand the syntax and basic
programming concepts
Arrays: Introduction, traversal, insertion, deletion, searching (linear and binary search), sorting
(bubble, selection, insertion sort)
Linked Lists: Singly linked lists, doubly linked lists, circular linked lists, operations (insertion,
deletion, traversal)
Stacks: Introduction, operations (push, pop, peek), implementation using arrays and linked lists
Queues: Introduction, operations (enqueue, dequeue, front, rear), types (linear, circular),
implementation using arrays and linked lists
3. Recursion
Examples: Factorial, Fibonacci series, Tower of Hanoi, binary search using recursion
Trees: Introduction, binary trees, traversal (in-order, pre-order, post-order), binary search trees
(BST), operations in BST
Heaps: Introduction, types (max heap, min heap), operations (insertion, deletion, heapify), heap
sort
Hashing: Introduction, hash function, collision handling methods (chaining, open addressing)
Graphs: Introduction, representation (adjacency matrix, adjacency list), traversal (BFS, DFS)
Fenwick Trees (Binary Indexed Trees): Introduction, update, prefix sum queries
6. Algorithms
Sorting Algorithms: Quick sort, merge sort, heap sort, counting sort, radix sort
algorithm, A* algorithm
Divide and Conquer: Introduction, examples (merge sort, quick sort, Karatsuba algorithm for
multiplication)
7. Advanced Topics
String Algorithms: String matching algorithms (KMP, Rabin-Karp), tries, suffix arrays
Graph Algorithms: Minimum spanning tree (Prim’s, Kruskal’s algorithm), shortest path algorithms
(Dijkstra’s, Bellman-Ford, Floyd-Warshall), topological sort, strongly connected components
Practice Problems: Solving problems on platforms like LeetCode, HackerRank, CodeChef, and
GeeksforGeeks
Projects:
9. Advanced Study
Problems :