L T P C
DATA STRUCTURES AND ALGORITHMS
22IT301 3 0 0 3
To understand the concepts of ADTs.
Course To design linear data structures – lists, stacks, and queues.
Objectives: To understand sorting, searching, and hashing algorithms.
To apply Tree structures.
To apply 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 – multi-
way 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
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
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
2
“Introduction to Algorithms", Second Edition, McGraw Hill, 2002.
Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Fourth Edition,
3
Pearson Education, 2014
REFERENCES:
Lee, Kent D., Hubbard, Steve, “Data Structures and Algorithms with Python” Springer
1
Edition 2015
Rance D. Necaise, “Data Structures and Algorithms Using Python”, John Wiley & Sons,
2
2011
3 Aho, Hop croft, and Ullman, “Data Structures and Algorithms”, Pearson Education, 1983.
4 https://archive.org/details/data-structures-and-algorithms-narasimha-karumanchi
L T P C
22IT304 DATA STRUCTURES AND ALGORITHMS LABORATORY
0 0 4 2
• To implement ADTs in Python
Course • To design and implement linear data structures – lists, stacks, and queues
Objectives: • To implement sorting, searching and hashing algorithms
• To solve problems using tree and graph structures
LIST OF PROGRAMS
1. Implement simple ADTs as Python classes
2. Implement recursive algorithms in Python
3. Implement List ADT using Python arrays
4. Linked list implementations of List
5. Implementation of Stack and Queue ADTs
6. Applications of List, Stack and Queue ADTs
7. Implementation of sorting and searching algorithms
8. Implementation of Hash tables
9. Tree representation and traversal algorithms
10. Implementation of Binary Search Trees
11. Implementation of Heaps
12. Graph representation and Traversal algorithms
13. Implementation of single source shortest path algorithm
14. Implementation of minimum spanning tree algorithms
TOTAL: 60 PERIODS
TEXT BOOKS:
Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser, “Data Structures &
1
Algorithms in Python”, an Indian Adaptation, John Wiley & Sons Inc., 2021
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
2
“Introduction to Algorithms", Second Edition, McGraw Hill, 2002.
Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Fourth Edition,
3
Pearson Education, 2014
REFERENCES:
Lee, Kent D., Hubbard, Steve, “Data Structures and Algorithms with Python” Springer
1
Edition 2015
Rance D. Necaise, “Data Structures and Algorithms Using Python”, John Wiley & Sons,
2
2011
3 Aho, Hop croft, and Ullman, “Data Structures and Algorithms”, Pearson Education, 1983.