DATA STRUCTURES LAB
Offering Branches CSE-CSE(AI&ML),CSE(DS),IT Year : I Sem: II
Course Category: Professional Course Credits: 1.5
Lecture-
Course Type: Laboratory/practical Tutorial- 0-0-3
Practical:
Continuous
30
Evaluation:
Prerequisites: Introduction to Programming Semester End
70
Evaluation:
Total Marks: 100
Course Learning Objectives:
The course aims to strengthen the ability of the students to identify and apply the
suitable data structure for the given real-world problem. It enables them to gain
knowledge in practical applications of data structures.
Course Outcomes
Upon successful completion of the course, the student will be able to:
Implement and analyze linear data structures (arrays, searching, sorting) and
CO1 K4
linked lists to solve real-world problems.
Develop and test programs using stacks, queues, and their applications for
CO2 K4
algorithmic problem-solving.
Construct and evaluate binary search trees and hashing techniques for efficient
CO3 K5
data storage and retrieval.
Contribution of Course Outcomes towards achievement of Program Outcomes
Program Outcomes(POs) PSOs
1 2 3 4 5 6 7 8 9 10 11 12 1 2
CO1 3 3 3 2 2 1 1 1 1 2 1 2 3 3
CO2 3 3 3 3 2 1 1 1 2 2 1 3 3 3
CO3 3 3 3 3 2 1 1 1 2 2 1 3 3 3
Avg. 3 3 3 3 2 1 1 1 2 2 1 3 3 3
1- Low 2-Medium 3-High
Course Content
Exercise No. Description CO
Array Manipulation
i) Write a program to reverse an array.
ii)C Programs to implement the Searching Techniques – Linear
Exercise.1 CO1
& Binary Search
iii) C Programs to implement Sorting Techniques – Bubble,
Selection and Insertion Sort
Exercise.2 Linked List Implementation CO1
i) Implement a singly linked list and perform insertion and
deletion operations.
ii)Develop a program to reverse a linked list iteratively and
recursively.
iii) Solve problems involving linked list traversal and
manipulation.
Linked List Applications
i) Create a program to detect and remove duplicates from a
linked list.
Exercise.3 ii)Implement a linked list to represent polynomials and perform CO2
addition.
iii) Implement a double-ended queue (deque) with essential
operations.
Double Linked List Implementation
i) Implement a doubly linked list and perform various
operations to understand its properties and
Exercise.4 CO2
applications.
ii)Implement a circular linked list and perform insertion, deletion,
and traversal.
Stack Operations
i) Implement a stack using arrays and linked lists.
Exercise.5 ii)Write a program to evaluate a postfix expression using a stack. CO2
iii) Implement a program to check for balanced parentheses using
a stack.
Queue Operations
i) Implement a queue using arrays and linked lists.
Exercise.6 CO2
ii)Develop a program to simulate a simple printer queue system.
iii) Solve problems involving circular queues.
Stack and Queue Applications
i) Use a stack to evaluate an infix expression and convert it to
postfix.
Exercise.7 ii)Create a program to determine whether a given string is a CO2
palindrome or not.
iii) Implement a stack or queue to perform comparison and check
for symmetry.
Binary Search Tree
Exercise.8 i) Implementing a BST using Linked List. CO3
ii) Traversing of BST.
Hashing
Exercise.9 i) Implement a hash table with collision resolution techniques. CO3
ii)Write a program to implement a simple cache using hashing.
Learning Resources
1. Data Structures and algorithm analysis in C, Mark Allen Weiss,
Pearson, 2nd Edition.
Text
Books
2. Fundamentals of data structures in C, Ellis Horowitz,
Sartaj Sahni, Susan Anderson- Freed, Silicon Press,
2008.
Reference 1. Algorithms and Data Structures: The Basic Toolbox by Kurt
Books Mehlhorn and Peter Sanders
2. C Data Structures and Algorithms by Alfred V. Aho, Jeffrey D.
Ullman, and John E. Hopcroft
3. Problem Solving with Algorithms and Data Structures" by Brad
Miller and David Ranum
4. Introduction to Algorithms by Thomas H. Cormen, Charles E.
Leiserson, Ronald L. Rivest, and Clifford Stein
5. Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data
Structures, Sorting, Searching, and Graph Algorithms by Robert
Sedgewick.
e-Resources
[Link]
and Digital
[Link]
Learning
[Link]
material
Justification of CO–PO Mapping (Including Low-Level Mappings)
CO1: Implementing arrays, searching, sorting, and linked lists
PO1 (3): Builds fundamental programming and algorithm skills.
PO2 (3): Analyzes time complexity in searching/sorting algorithms.
PO3 (3): Designs practical solutions using linked lists for data storage.
PO4 (2): Investigates efficiency in various implementations (e.g., iterative vs recursive).
PO5 (2): Utilizes IDEs and debugging tools for testing.
PO6 (1): Low relevance; indirectly benefits software reliability impacting society.
PO7 (1): Minimal; relates to efficient code reducing resource usage.
PO8 (1): Ethics in writing plagiarism-free code and following coding standards.
PO9 (1): Low; occasional teamwork in lab settings.
PO10 (2): Students prepare reports/documentation explaining their programs.
PO11 (1): Limited project planning relevance; minor time/resource estimation in labs.
PO12 (2): Builds foundation for lifelong learning in programming paradigms.
CO2: Stack and queue-based applications
PO1 (3): Uses core computational concepts (stack memory behavior).
PO2 (3): Analyzes problems like expression evaluation and BFS traversal.
PO3 (3): Designs queue-based simulations (e.g., printer queue).
PO4 (3): Investigates algorithm efficiency in traversal/scheduling.
PO5 (2): Applies debugging tools to trace recursion and data flow.
PO6 (1): Low societal impact (e.g., efficient scheduling in real-world systems).
PO7 (1): Minimal; efficiency indirectly reduces system overhead.
PO8 (1): Ethical practices in collaborative debugging.
PO9 (2): Team projects for implementing BFS or queue simulation programs.
PO10 (2): Students present and explain stack/queue solutions.
PO11 (1): Limited; applies basic planning in group work.
PO12 (3): Encourages self-learning of advanced data handling structures.
CO3: Trees and hashing techniques
PO1 (3): Implements BST operations and hashing functions programmatically.
PO2 (3): Analyzes hash collisions and tree traversal complexity.
PO3 (3): Designs hash-based caching and efficient search programs.
PO4 (3): Investigates real-time data retrieval optimization.
PO5 (3): Employs advanced IDEs, libraries for BST and hashing.
PO6 (1): Minimal; supports reliable software solutions benefiting end-users.
PO7 (1): Indirect; optimized data retrieval saves resources.
PO8 (1): Follows software license compliance for open-source libraries.
PO9 (2): Team collaborations for hash table and BST design tasks.
PO10 (2): Requires clear explanation of hashing methods and code documentation.
PO11 (1): Minor exposure to time management during lab sessions.
PO12 (3): Supports continuous learning in database indexing and secure hashing.
1. Internal Evaluation (30 Marks)
Breakup:
Day-to-Day Evaluation (15 Marks):
o Regular lab attendance, timely completion of experiments, observation book (5
Marks),Record Work.
o Quality of code (efficiency, correctness, coding standards) (5 Marks)
o Debugging skills and output demonstration (5 Marks)
Internal Lab Test (15 Marks):
o Lab test on problem-solving using data structures (10 Marks)
o Viva on lab concepts (5 Marks)
Internal Evaluation Rubrics (CO-Mapped):
Criteria Marks Mapped COs Performance Indicators
CO1, Completeness and neatness of records,
Attendance & Observation 5
CO2,CO3 punctuality
Code Quality & CO1,CO2, Correct syntax, logic, adherence to
5
Implementation CO3 standards
Debugging & Output 5 CO2, CO3 Ability to identify and fix errors efficiently
CO1,CO2,
Internal Lab Test (Coding) 10 Program correctness, logic clarity
CO3
CO1,CO2,
Viva (Conceptual Clarity) 5 Understanding of DS concepts & operations
CO3
2. External Evaluation (70 Marks)
Breakup:
Procedure: 20 Marks
o Completeness of experiments (10 Marks)
o Documentation and clarity (10 Marks)
Experiment & Results: 30 Marks
o Logic correctness and execution (20 Marks)
o Output verification ( 10Marks)
Viva-Voce: 20 Marks
o Conceptual questions from lab experiments (10 Marks)
o Justification of code and debugging (10 Marks)
External Evaluation Rubrics (CO-Mapped):
Criteria Marks Mapped COs Performance Indicators
Procedure 20 CO1, CO2,CO3 Completeness, clarity, proper documentation
Experiment & Results 30 CO1,CO2, CO3 Correct implementation, logic, output
Viva-Voce 20 CO1, CO2, CO3 Depth of understanding, clarity in explanation
3. CO-wise Evaluation Summary (NBA Framework)
Internal Evaluation (30 Marks):
CO Mapped Components Marks Allocation
CO1 Day-to-day (Observation, Attendance), Record work 5
CO2 Day-to-day (Code, Debugging), Internal Test, Viva 10
CO3 Debugging, Internal Test, Viva 15
External Evaluation (70 Marks):
CO Mapped Components Marks Allocation
CO1 Procedure 20
CO2 Experiment & Results, 30
CO3 , Viva 20
4. CO-wise Marks Distribution (Internal + External):
CO Internal (30) External (70) Total (100)
CO1 8 20 28
CO2 12 25 37
CO3 10 25 35
5. CO-Attainment Evaluation (Mapped to Rubrics):
CO1: Fundamental understanding of arrays, linked lists (evaluated via record and viva).
CO2: Implementation skills in stacks/queues (lab tests, experiments).
CO3: Analytical application of trees/hashing (external experiment, viva).
Importance of the Course (As per NBA Framework)
The Data Structures Lab plays a pivotal role in bridging theoretical concepts of data structures
with practical implementation skills, aligning with NBA’s Outcome-Based Education (OBE)
framework. This course is instrumental in fostering analytical thinking, problem-solving skills,
and hands-on programming expertise, which are fundamental for Computer Science and allied
engineering branches.
Relevance to NBA Graduate Attributes:
1. Engineering Knowledge (PO1):
Students develop proficiency in core computing concepts like arrays, linked lists, stacks,
queues, trees, and hashing, enabling them to solve computational problems effectively.
2. Problem Analysis (PO2):
The course nurtures analytical reasoning through performance analysis of algorithms and
efficient data organization strategies.
3. Design/Development of Solutions (PO3):
Practical implementation of data structures empowers students to design modular and
reusable code, essential for scalable software systems.
4. Modern Tool Usage (PO5):
Exposure to programming IDEs, debugging tools, and libraries strengthens their ability to
use modern computational tools for solving engineering problems.
5. Individual & Team Work (PO9):
Laboratory assignments encourage collaborative coding, peer debugging, and teamwork,
fostering essential professional skills.
6. Communication Skills (PO10):
Students articulate algorithmic logic and prepare structured documentation, reinforcing
technical communication skills.
7. Lifelong Learning (PO12):
The course establishes a strong foundation for advanced study in algorithms, database
indexing, AI/ML, and system optimization, promoting lifelong learning adaptability.
Significance in Engineering Curriculum:
Serves as a prerequisite for advanced courses like Algorithms, Operating Systems,
Database Management Systems, and Artificial Intelligence.
Enhances employability skills by focusing on coding proficiency, logical reasoning, and
algorithmic problem-solving demanded in IT/software industries.
Integrates practical knowledge with industry-relevant tools and methodologies used in
software development environments.
Strengthens students’ ability to participate in competitive programming and coding
platforms (e.g., HackerRank, LeetCode, Codeforces).
This course directly supports NBA’s outcome-based learning objectives, producing graduates
capable of applying computational knowledge to real-world engineering challenges while
equipping them for higher education and industry requirements.