SYLLABUS
CS25C04 DATA STRUCTURES AND ALGORITHMS
UNIT – 1: DATA TYPES
Abstract Data Types (ADTs), ADTs and classes, introduction to OOP, Classes in Python, Inheritance,
Namespaces, Shallow and Deep Copying.
Practical:
Implement simple ADTs as Python classes
UNIT – 2: LINEAR STRUCTURES
List ADT, array-based implementations, linked list implementations, singly linked lists, circularly
linked lists, doubly linked lists, Stack ADT, Queue ADT, double ended queues, applications
Practical:
List ADT using Python arrays, Linked list, Stack and Queue ADTs and Applications.
UNIT – 3: TREE STRUCTURES
Tree ADT, Binary Tree ADT, tree traversals, binary search trees, AVL trees, heaps, multi-way search
trees
Practical:
Tree representation and traversal algorithms, Binary Search Trees, Heaps.
UNIT – 4: GRAPH STRUCTURES
Graph ADT, representations of graph, graph traversals, DAG, topological ordering, greedy
algorithms, dynamic programming, shortest paths, minimum spanning trees, introduction to
complexity classes and intractability
Practical:
Graph representation and Traversal algorithms, Single source shortest path algorithm,
Minimum spanning tree algorithms.
UNIT – 5: ALGORITHM
Analysis of algorithms, Asymptotic notations, Divide & Conquer, Recursion, Recursive Algorithms
Practical:
Implement recursive algorithms in Python.
UNIT – 6: SORTING AND SEARCHING
Bubble sort, Selection sort, Insertion sort, Merge sort, Quick sort, Analysis of sorting algorithms,
Linear & Binary search, Hashing, Hash functions, Collision handling, Load factors, Rehashing, and
Efficiency
Practical:
Sorting and searching algorithms, Hash tables




















Reviews
There are no reviews yet.