Professional Documents
Culture Documents
DSA Syllabus
DSA Syllabus
UNIT-II:
Linear Data Structures: Stacks – Operations, Applications – Infix to Prefix and Infix to
postfix conversions, Postfix Evaluation – Queues – Operations and Type - Circular queues.
Implementation of Single Linked List. [Reference 1 & 2]
UNIT-III:
Non-Linear Data Structures: Trees - Overview of Trees, Tree Terminology, Binary Trees:
Introduction, Implementation, Applications. Tree Traversals, Binary Search Trees:
Introduction, Implementation, AVL Trees: Introduction, Rotations, Implementation, B-Trees.
[Reference 1 & 2]
UNIT-IV:
Non-Linear Data Structures: Graphs -Introduction, Directed vs Undirected Graphs,
Weighted vs Unweighted Graphs, Representations, Breadth First Search Implementation,
Depth First Search Implementation, and Directed Acyclic Graph: Topological sorting, Heap
sort. [Reference 1 & 2]
UNIT-V:
Hashing, Introduction to Algorithms, performance analysis-space complexity, time
complexity, asymptotic notation, Shortest Paths: Dijkstra's algorithm, Floyd-Warshall
Algorithm. [Reference 1 & 2]
REFERENCES:
[1] Data Structures and Algorithms in Java, Michael T.Goodrich, Roberto Tamassia, Michael
H.Goldwasser, Sixth Edition, Wiley, 2021.
[2] Data Structures using C, Reema Thareja, Sixth Edition, Oxford University, 2014.
[3] Advanced Data Structures, Reema Thareja, S. Rama Sree, Oxford University Press, 2018
[4] Advanced Data Structures, Peter Brass, Cambridge University Press, 2008.
COURSE OUTCOMES:
Understand the basic principles and operations of data structures
Apply Stacks and queues data structures concepts for solving problems effectively.
Apply the concepts of advanced trees and graphs for solving problems effectively
Analyse the given scenario and choose appropriate data structures for solving
problems
List of Exercises:
1) Implement a Java program for quicksort algorithm to sort an array of integers.
2) Implement a Java program for Merge sort algorithm to sort an array of integers.
3) Implement a Java program to perform binary search operation for a key value in a
given list of integers.
4) Design a stack data structure that supports the following operations: push(), pop(), and
peek(). Implement it using an array or a linked list.
5) Design a queue data structure and implement the enqueue() and dequeue() operations.
6) Implement a Java program to convert an infix expression to postfix notation using a
stack.
7) Develop a Java program that uses functions to perform the creation, insertion, and
deletion and traversal operations on singly linked list.
8) Create a binary search tree (BST) and implement the functions to insert a node, search
for a value, and perform an in-order traversal.
9) Implement a Java program to perform a depth-first search (DFS) and a breadth-first
search (BFS) starting from a specific vertex.
10) Implement a java program to find the shortest path between two vertices using
Dijkstra’s algorithm.