Category L T P C
24CBT32 DATA STRUCTURES AND ALGORITHMS
ESC 3 0 0 3
PREREQUISITE:
Proficiency in a programming language (such as C++, Java, or Python) with a clear understanding of
variables, loops, functions, and recursion. Basic knowledge of algorithmic concepts, including problem-
solving, time and space complexity analysis.
OBJECTIVES:
To understand and implement efficient data structures and algorithms for effective problem-solving.
To analyze time and space complexities to enhance the performance of code.
UNIT – I BASICS OF DATA STRUCTURES (8)
Abstract Data Types (ADTs) – List ADT – Array-based implementation – Linked list implementation –
Singly linked lists – Doubly linked lists – Circularly linked lists. Applications of lists.
UNIT – II STACKS AND QUEUES (9)
Stack ADT – Implementation of Stack using Array and Linked List – Applications of Stack: Evaluating
arithmetic expressions – Conversion of Infix to postfix expression. Queue ADT – Implementation of Queue
using Array and Linked List – Circular Queue – Applications of Queues.
UNIT – III TREES AND GRAPHS (9)
Tree ADT – Binary Tree ADT – Binary Tree Traversal – Expression Trees Binary Search Tree – AVL Trees –
Graphs and its Types – Breadth First Traversal – Depth First Traversal – Topological Sort – BiConnectivity -
B-Tree - B+ Tree.
UNIT – IV SEARCHING, HASHING AND SORTING (9)
Searching: Linear and Binary Search – Sorting: Bubble Sort – Selection Sort – Insertion Sort – Heap Sort.
Hashing: Hash function – Separate Chaining – Open Addressing: Linear Probing, Quadratic Probing and
Double Hashing – Rehashing – Extendible Hashing
UNIT – V ALGORITHM DESIGN AND ANALYSIS (10)
Fundamentals of algorithmic problem solving – Algorithm analysis framework – Asymptotic Notations – -
Divide and Conquer: Merge Sort-Quick Sort- Greedy Algorithm: Huffman’s Code–-Dynamic Programming-
Traveling Salesman’s Problem- Minimum Spanning Tree: Prim’s Algorithm – Kruskal’s Algorithm – Single
Source Shortest Path Algorithm: Dijkstra’s Algorithm.
TOTAL: 45 PERIODS
COURSE OUTCOMES:
At the end of the course, the students will be able to:
COs Course Outcome Cognitive Level
Understand the concepts and implementation of linear data structures such
CO1 Understand
as arrays and linked lists.
Implement stacks and queues using arrays and linked lists, and apply them
CO2 Apply
to solve expression problems.
Construct and traverse trees and graphs, and apply appropriate tree/graph-
CO3 Apply
based algorithms.
Apply suitable searching, sorting, and hashing techniques for efficient data
CO4 Apply
management.
Analyze and compare algorithmic approaches like divide and conquer,
CO5 Analyze
greedy, and dynamic programming.
TEXT BOOKS:
1. Mark Allen Weiss, Data Structures and Algorithm Analysis in C, 3rd Edition, Pearson Education, 2007.
2. Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to algorithms.
MIT press, 2022.
REFERENCES:
1. Langsam, Augenstein and Tanenbaum, Data Structures Using C and C++, 2nd Edition, Pearson
Education, 2015.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L.Rivest, Clifford Stein, Introduction to Algorithms",
Fourth Edition, Mcgraw Hill/ MIT Press, 2022.
3. Alfred V. Aho, Jeffrey D. Ullman,John E. Hopcroft ,Data Structures and Algorithms, 1st edition, Pearson,
2002.
4. Kruse, Data Structures and Program Design in C, 2nd Edition, Pearson Education, 2006.
5. Ellis Horowitz, Sartaj Sahni, and Dinesh Mehta, "Fundamentals of Data Structures in C", 2nd Edition,
Universities Press, 2008.
Mapping of COs with POs and PSOs
COs/ PO PO PSO PSO
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9
POs 10 11 1 2
CO1 3 3 1 2 2 - - - 1 1 1 2 1
CO2 2 2 1 2 2 - - - 1 1 1 2 2
CO3 3 3 1 2 3 - - - 1 1 1 2 1
CO4 2 1 - 1 1 - - - 2 1 1 2 3
CO5 3 2 2 2 2 - - - 1 - 2 - -
Avg. 2.6 2.2 1.8 1.8 2.0 - - - 1.2 1.0 1.2 1.6 1.4
1-low, 2-medium, 3-high