Syllabus
Unit I
Introduction to Data Structures: Need and Relevance – Abstract Data Types and Data Structures – Principles, and Patterns. Basic complexity analysis – Best, Worst, and Average Cases – Asymptotic Analysis -Analyzing Programs – Space Bounds, recursion- linear, binary, and multiple recursions. Arrays, Linked Lists and Recursion: Using Arrays – Lists – Array based List Implementation – Linked Lists – LL ADT – Singly Linked List – Doubly Linked List – Circular Linked List Stacks and Queues: Stack ADT – Array based Stacks, Linked Stacks – Implementing Recursion using Stacks, Stack Applications. Queues – ADT, Array based Queue, Linked Queue, Double-ended queue, Circular queue, applications.
Unit II
Trees: Tree Definition and Properties – Tree ADT – Basic tree traversals – Binary tree – Data structure for representing trees – Linked Structure for Binary Tree – Array based implementation. Priority queues: ADT – Implementing Priority Queue using List – Heaps. Maps and Dictionaries: Map ADT – List based Implementation – Hash Tables – Dictionary ADT. Skip Lists – Implementation – Complexity.
Unit III
Search trees Binary search tree, AVL tree and its rotation Segment Trees – B-Trees. Implementation. External Memory Sorting and Searching. Graphs: ADT- Data structure for graphs – Graph traversal- Transitive Closure- Directed Acyclic graphs – Weighted graphs Shortest Paths – Minimum spanning tree Greedy Methods for MST.Persistent data structures, fusion trees, Bloom filter, Game Trees (Case Study)
Objectives and Outcomes
Pre-Requisite(s): 23MATXXX Discrete Mathematics
Course Objectives
- This course aims to provide the students, an in-depth understanding of structure and implementation of the common data structures used in computer science.
- It imparts the ability to solve problems by choosing and applying the right data structures.
- It also imparts the ability to improve the efficiency of programs by applying the right data structures.
Course Outcomes
CO1: Understand the concept and functionalities of Data Structures and be able to implement them efficiently.
CO2: Identify and apply appropriate data structures and their libraries to solve problems and improve them
efficiency
CO3: Analyze the complexity of data structures and associated algorithms.
CO4: Analyze the impact of various implementation and design choices on the data structure performance.
CO-PO Mapping
PO/PSO |
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
PO6 |
PO7 |
PO8 |
PO9 |
PO10 |
PO11 |
PO12 |
PSO1 |
PSO2 |
PSO3 |
CO |
CO1 |
3 |
|
1 |
|
3 |
|
|
1 |
|
1 |
|
|
3 |
1 |
– |
CO2 |
3 |
3 |
1 |
2 |
|
|
|
1 |
|
1 |
|
|
3 |
1 |
– |
CO3 |
1 |
3 |
1 |
2 |
|
|
|
1 |
|
1 |
|
|
3 |
1 |
– |
CO4 |
2 |
2 |
1 |
2 |
3 |
|
|
1 |
|
1 |
|
|
3 |
1 |
– |
Evaluation Pattern
Evaluation Pattern: 50:50
Assessment |
Internal |
External |
Midterm |
20 |
|
*Continuous Assessment Theory (CAT) |
20 |
|
*Continuous Assessment LAB (CAL) |
30 |
|
**End Semester |
|
30 (50 Marks; 2 hours exam) |
*CAT includes Quizzes and Tutorials
*CAL – Can be Lab Assessments, Project, Case Study and Report
**End Semester can be theory examination/ lab-based examination
Text Books / References
Textbook(s)
Michael T Goodrich and Roberto Tamassia and Michael H Goldwsasser, “Data Structures and Algorithms in Python++”, John Wiley publication, 2013.
Reference(s)
- Michael T Goodrich and Roberto Tamassia and Michael H Goldwsasser, “Data Structures and Algorithms in Java”, Fifth edition, John Wiley publication, 2010.
- Tremblay J P and Sorenson P G, “An Introduction to Data Structures with Applications”, Second Edition, Tata McGraw-Hill, 2002.
- Clifford A. Shaffer, “Data Structures and Algorithm Analysis”, Third Edition, Dover.
- Dinesh P. Mehta, Dinesh P. Mehta, Sartaj Sahni, “Handbook of Data Structures and Applications”, Chapman and Hall/CRC, 2004.
- George Heineman Gary Pollice, Stanley Selkow, “Algorithms in a Nutshell”, O′Reilly; 2nd edition, 2016.