Csr123:Data Structures and Algorithms: Session 2022-23 Page:1/2
Csr123:Data Structures and Algorithms: Session 2022-23 Page:1/2
CO1 :: understand basic data structures such as arrays, linked lists, stacks and queues
CO2 :: use appropriate data structures focusing space and time complexity for a given problem
specification
CO3 :: use optimized algorithms for solving problems like sorting, searching, insertion and
deletion of data
CO4 :: solve computation problems using trees and graphs
Unit I
Introduction to Data Structures : Course overview, Motivation, Need for data structures,
Understanding the role of data structures for efficient data processing, Classification of data
structures, Abstract Data Type (ADT): Definition, Examples, Introduction to Array ADT, Linked List
ADT: insert, delete, search, types of Linked List, Stack ADT: push, pop, types of Stacks, Queue ADT:
enqueue, deque, Types of Queues, Applications of ADTs, Understanding when to use which data
structure
Unit II
Complexity Analysis : Introduction to Algorithms, Asymptotic analysis: Big-O, Big-Theta, and other
notations, Worst, average, and best-case analysis, Euclid's GCD Algorithm: Basic and Extended
Algorithms, Primality testing: SQRT(N) test, Fermat primality test, Miller Rabin test, Sieve of
Eratosthenes, Sieve of Atkin
Sorting : Selection Sort, Insertion Sort, Bubble Sort, Merge Sort, Quick Sort, Heap Sort, Time
Complexity analysis of Sorting, Counting Sort, Radix Sort, Bucket Sort
Searching : Linear Search, Binary Search, Interpolation Search
Recursion : Iteration vs. Recursion, Design of Recursive Algorithms, Simple Recursion and Recursion
Tree, Types of Recursions, Digit Extraction using Recursion, Factorial using Recursion, Recursion
applications, Tower of Hanoi Problem
Unit III
Tree Data Structures : Binary Tree ADT, Basic terms: Complete BT, Balanced, Unbalanced BT,
Insert, Delete, Traverse, Inorder, Postorder, Preorder, Self-Balancing Binary Tree ADT, AVL Tree, Red
Black Tree, 2-3 Tree, AA Tree, Scapegoat Tree, Splay Tree, Treap, Trie ADT: Applications to String
problems, N-dimensional Tree ADT: B Tree, B+ Tree, Advanced Data Structures ADT: Segment Tree,
Fenwick Tree, Cartesian Tree
Heaps : Heap Data Structures ADT, Min Heap, Max Heap, Priority Heap, Fibonacci Heap
Unit IV
Graph Algorithms : Adjacency Matrix and Adjacency List, Shortest Path Algorithms: Dijkstra's
algorithm, Floyd-Warshall Algorithm, Bellman-Ford Algorithm, Johnson Algorithm, Minimum Spanning
Tree: Kruskal's Algorithm, Boruvka's Algorithm, Prim's Algorithm, Cheriton Tarjan's Algorithm, Graph
Coloring Algorithm: Greedy Algorithm, Welsh Powell Algorithm, Wigderson Algorithm Cut edge, Cut
node
Unit V
Divide & Conquer : Closest Pair of Points, Karatsuba Algorithm, Median of Medians, Meet in Middle
Technique
Greedy Algorithms : Activity Selection Problem, Knapsack problem + variants, Bin Packing problem,
Weighted Job scheduling
Unit VI
Dynamic Programming : Dice Throw Problem, Assembly Line Scheduling, Subset Sum Problem,
Longest Palindromic, Subsequence, Word Break Problem, Word Wrap Problem, Backtracking: 8
Queens Problem, Knight's Tour Problem
Complexity Classes : P class, NP-Complete, NP-Hard, P=NP problem
• Write two different (recursive and non-recursive) functions to implement quick sort
• Write two different (recursive and non-recursive) functions to solve towers of Hanoi
• A string-matching exercise
Text Books:
1. DATA STRUCTURES USING C by AARON M. TENENBAUM, Y. LANGSAM AND M. J.
AUGENSTEIN, Pearson Education India
References:
1. FUNDAMENTALS OF DATA STRUCTURES IN C by HOROWITZ, SAHNI AND ANDERSON-
FREED, UNIVERSITIES PRESS PVT. LTD