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.