Syllabus
Syllabus
CO1 :: describe the process to find efficiency of algorithms using asymptotic notations
CO3 :: differentiate the HashTable and HashMap in context of writing efficient program
CO5 :: analyze the effectiveness of Priority queue and Heap Data Structures
CO6 :: use of Graph and various techniques in real world problem solving
Unit I
Introduction : Basic Data Structures, Basic Concepts and Notations, Complexity analysis: time space
and trade off, Omega Notation, Theta Notation, Big O notation
Stacks : Introduction to Stacks, Parenthesis matching problem using Stacks, Implementing a stack,
Industry demonstration: File versioning system
Unit II
Queues : Introduction to Queues, Ticket booking system using Queues, implement a stack using two
queues, implement a stack using one queue, Palindromic string problem, Duplicate parenthesis
problem, Reversing a stack problem, Kth largest element problem
Unit III
HashTables : Design and performance analysis of hash tables, Hash functions and hashing, Collision
in hash tables, how to check if a given hash function is good or bad, Implementation of a dictionary
(phone book) using a hash table
HashMaps : Introduction to the HashMaps, Find Symmetric Pairs problem, First Unique Character
problem
Unit IV
HashSets : Introduction to the HashSets, Array of Contiguous Integers problem, Pair with a Given
Sum problem, Itinerary From all Tickets problem, Match Locks and Keys problem
Binary Trees : Title problem: Runway Reservation, Linear vs non-Linear data structures, Trees &
Binary Trees, Properties, Types & Representation of binary trees, Tree Traversal: DFS & BFS,
Mirroring a tree problem, Spiral order traversal of a tree
Binary Search Trees : Introduction to the Binary Search Trees, Searching, Insertion & Deletion in a
BST, Lowest common ancestor problem, Balanced BSTs, Solution of the Title Problem
Unit V
Priority Queues : Introduction to the Priority queues with example, Priority queues ADT,
Implementation of priority queues using LinkedList and ArrayList
Heaps : Introduction to the Heaps, Basic operations performed on heaps, Sorting, Merge k sorted
linked list problem, Median of stream of integers problem
Unit VI
Graphs and Graph Algorithms : Depth-First Search, Breadth-First Search, Edge list, Adjacency
matrix, Adjacency list, Dijkstra’s algorithm, Application of graphs in real life
• Program to implement operations in Queue:a. Reversing a Queue using recursionb. Check if a queue
can be sorted into another queue using a stack
• To Count the total number of ways or paths that exist between two vertices in a directed graph.
Text Books:
1. DATA STRUCTURES AND ALGORITHMS by ALFRED V. AHO, JEFFREY D. ULLMAN AND JOHN
E. HOPCROFT, PEARSON, PEARSON
References:
1. DATA STRUCTURES AND ALGORITHMS IN JAVA by MICHAEL T. GOODRICH AND ROBERTO
TAMASSIA, JOHN WILEY & SONS