Data Structure Lab
This laboratory course provides hands-on experience in implementing fundamental data structures and algorithms using the C programming language. Students will develop practical skills in arrays, linked lists, stacks, queues, trees, graphs, recursion, and searching and sorting techniques through structured lab exercises and a mini project.
Instructor: Jubair Ahmed Nabin
Term: Fall
Location: ComLab5, Room
Time: Wednesday, 01:10 – 03:15 PM
Course Overview
This lab-based course focuses on the practical implementation of core data structures and algorithms using the C programming language. Students will gain hands-on experience in solving computational problems through structured programming, dynamic memory management, and efficient algorithm design.
By the end of this course, students will be able to:
- Implement linear and non-linear data structures in C
- Apply recursion and algorithmic problem-solving techniques
- Analyze and debug programs involving data structures
- Design and develop a mini project using multiple data structures
Prerequisites
- None
Course Objectives
- Provide hands-on training in implementing core data structures such as arrays, linked lists, stacks, queues, trees, and graphs.
- Develop practical skills in dynamic memory allocation, pointer manipulation, and modular programming in C.
- Enable students to apply algorithmic thinking using iterative and recursive approaches.
- Train students to implement searching and sorting algorithms.
- Prepare students to design menu-driven applications integrating multiple data structures.
Course Outcomes (COs)
- CO1: Describe fundamental concepts of data structures, including memory management and recursion.
- CO2: Implement and test data structures using C for solving computational problems.
- CO3: Develop a project applying appropriate data structures and algorithms for real-world applications.
Lab Topics
- Arrays and Structures
- Singly & Doubly Linked Lists
- Stack (Array and Linked List Implementation)
- Queue & Circular Queue
- Recursion (Factorial, Fibonacci, Tower of Hanoi)
- Binary Trees & Binary Search Trees
- Tree Traversals (Inorder, Preorder, Postorder)
- Graphs – Adjacency Matrix/List, BFS & DFS
- Searching (Linear, Binary) & Sorting (Bubble, Merge, Quick)
- Hashing Techniques (Introductory)
- Mini Project: Menu-driven application
Grading
- Assignment/Project: 20%
- Attendance & Participation: 20%
- Lab Report: 20%
- Final Examination: 40%
- Total: 100%
Consultation Hours
- Wednesday: 10:40 AM – 12:40 PM (Section C)
Schedule
| Week | Date | Topic | Materials |
|---|---|---|---|
| 1 | Course Introduction Course policies, lab rules, and importance of data structures. | ||
| 2 | Arrays Implementation and analysis of arrays and operations in C. | ||
| 3 | Stack (Array Implementation) Stack operations (push, pop, peek) and expression handling. | ||
| 4 | Queue (Array Implementation) Linear and circular queue operations and applications. | ||
| 5 | Review and Test Assessment on arrays, stack, and queue concepts. | ||
| 6 | Singly Linked List Implementation of insert, delete, and traversal operations. | ||
| 7 | Doubly and Circular Linked Lists Advanced linked list structures and operations. | ||
| 8 | Stack and Queue using Linked Lists Dynamic implementation and comparison with array-based approaches. | ||
| 9 | Mid Lab Assessment Evaluation on linked lists, stack, and queue implementations. | ||
| 10 | Trees and Traversals Binary tree creation and traversal techniques (inorder, preorder, postorder). | ||
| 11 | Binary Search Trees Insert, search, and delete operations in BST. | ||
| 12 | Graphs Graph representation and traversal (BFS, DFS). | ||
| 13 | Project Presentation Final project demonstration and course review. |