AD3251-Data Structures Design
Unit I: Abstract Data Types
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 – recursion – analyzing recursive algorithms.
Unit II: Linear Structures
List ADT – array-based implementations – linked list implementations – singly linked lists –
circularly linked lists – doubly linked lists – applications of lists – Stack ADT – Queue ADT
– double-ended queues.
Unit III: Sorting And Searching
Bubble sort – selection sort – insertion sort – merge sort – quick sort – linear search – binary
search – hashing – hash functions – collision handling – load factors, rehashing, and
efficiency.
Unit IV: Tree Structures
Tree ADT – Binary Tree ADT – tree traversals – binary search trees – AVL trees – heaps –
multi-way search trees.
Unit V: Graph Structures
Graph ADT – representations of graph – graph traversals – DAG – topological ordering –
shortest paths – minimum spanning trees.
Text Books:
1. Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser, “Data Structures
and Algorithms in Python” (An Indian Adaptation), Wiley, 2021.
2. Lee, Kent D., Hubbard, Steve, “Data Structures and Algorithms with Python” Springer
Edition 2015.
3. Narasimha Karumanchi, “Data Structures and Algorithmic Thinking with Python”
Careermonk, 2015.
References:
1. Rance D. Necaise, “Data Structures and Algorithms Using Python”, John Wiley &
Sons, 2011.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
“Introduction to Algorithms”, Third Edition, PHI Learning, 2010.
3. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Fourth Edition,
Pearson Education, 2014.
4. Aho, Hopcroft, and Ullman, “Data Structures and Algorithms”, Pearson Education
India, 2002.