## CD3291 Syllabus - Data Structures And Algorithms - 2021 Regulation Anna University

CD3291

DATA STRUCTURES AND ALGORITHMS

L T P C

3003

COURSE OBJECTIVES:
To understand the concepts of ADTs
To design linear data structures – lists, stacks, and queues
To understand sorting, searching, and hashing algorithms
To apply Tree and Graph structures

UNIT I

ABSTRACT DATA TYPES

9

Abstract Data Types (ADTs) – ADTs and classes – introduction to OOP – classes in Python – inheritance – namespaces – shallow and deep copying Introduction to analysis of algorithms – asymptotic notations – divide & conquer – recursion – analyzing recursive algorithms

UNIT II

LINEAR STRUCTURES

9

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

UNIT III

SORTING AND SEARCHING

9

Bubble sort – selection sort – insertion sort – merge sort – quick sort – analysis of sorting algorithms – linear search – binary search – hashing – hash functions – collision handling – load factors, rehashing, and efficiency

UNIT IV

TREE STRUCTURES

9

Tree ADT – Binary Tree ADT – tree traversals – binary search trees – AVL trees – heaps – multiway search trees

UNIT V

GRAPH STRUCTURES

9

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

TOTAL: 45 PERIODS

COURSE OUTCOMES: At the end of the course, the student should be able to:
CO1:Explain abstract data types
CO2:Design, implement, and analyze linear data structures, such as lists, queues, and stacks, according to the needs of different applications
CO3:Design, implement, and analyze efficient tree structures to meet requirements such as searching, indexing, and sorting
CO4:Model problems as graph problems and implement efficient graph algorithms to solve them

TEXT BOOKS:
1. Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser, “Data Structures & Algorithms in Python”, An Indian Adaptation, John Wiley & Sons Inc., 2021

REFERENCES:
1. Lee, Kent D., Hubbard, Steve, “Data Structures and Algorithms with Python” Springer Edition 2015
2. Rance D. Necaise, “Data Structures and Algorithms Using Python”, John Wiley & Sons, 2011
3. Aho, Hopcroft, and Ullman, “Data Structures and Algorithms”, Pearson Education, 1983.
4. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, “Introduction to Algorithms", Second Edition, McGraw Hill, 2002.
5. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Fourth Edition, Pearson Education, 2014