CSDA-244 Data Structures (Theory+Lab) Spring 2025
CSDA-244 Data Structures (Theory+Lab) Spring 2025
Course Description
The purpose of this course is to build upon a strong understanding of “Data Structures and famous
dealing algorithms”. It covers data storage policies, representations, operations and algorithms
related to various data structures. It also provides practical approach to computer science students
for a better view of what is going on beyond the desktop.
Course Materials
This course introduces the following topics to students:
Week Topic
1 Brief introduction of different data structures with advantages and disadvantages
Array data structure, representation of array in memory
Searching algorithms such as Linear search and binary search on arrays data structure.
2 Sorting algorithm such as selection sort, bubble sort and insertion sort.
3 Introduction of Linked List, properties of linked list and comparison w.r.t array data
structure.
Traversing Function in linked list
Insertion Functions in linked list: AddToHead(element) and AddToTail(element).
4 Insertion Functions in linked list, i.e., AddAfter(element), addBefore(element) and
AddSorted(element).
Deletion Functions in Linked list: Remove(element) and RemoveAll(), Shifting
Function in Linked List: MovetoHead(element), and MoveToTail(element).
Application and Advantages/Disadvantages of linked list with respect to array
5 Introduction of Two way linked list, its properties and comparison w.r.t singular linked
list.
Insertion and deletion functions in two way linked list (all functions covered in singular
linked list needs to be covered with two way linked list also).
Week Topic
6 Applications and Advantages/Disadvantages of Two way linked
Introduction of Stack, its properties and basic functions of Stack such as, push
(element), pop(), isEmpty(), isFull(), and topValue().
Stack using array vs. stack using linked list
7 Brief overview of different applications of stack.
Stack applications in detail: String reversal, Symbol balancing and evaluation of postfix
expression
8 Stack applications in detail: conversion of mathematical expression using stack such as,
Infix-to-postfix, Postfix-to infix, Postfix-to-prefix, Infix-to-prefix, Prefix-to-infix, and
Prefix-to-postfix
9 Mid Exam Week
10 Mid Exam Week
11 Queue and its related functions such as Enqueue(element), Dequeue(), isEmpty(),
isFull(), and isInlist(element).
Queue using linked list along with related functions such as Enqueue(element),
Dequeue(), isEmpty(), isFull(), and isInlist(element).
12 Queue using Circular array, its benefits, and related functions such as
Enqueue(element), Dequeue(), isEmpty(), isFull(), and isInlist(element).
Application of Circular queue.
Priority Queue using Linked list and Multiple queues
13 Introduction to Graph Data Structure, its properties and Applications.
Representation of Graphs as adjacency list and adjacency matrix
Graph Algorithms: Depth-first search, breadth-first search, PRIMS and KRUSKAl
algorithms for finding Minimum Spanning Tree
14 Introduction to trees, binary trees, representation of binary trees using array and linked
list.
Pre-order, In-order and post-order traversing operations in binary trees
Introduction to Binary Search Tree (BST) along with Insertion operation in Binary
Search Tree.
15 Searching and deletion operation in Binary Search Tree.
Introduction to Heap, its representation and related operations such as Max heapify(),
Min heapify(), insert, delete, and heap sort.
Priority Queue using Heap
16 Introduction to AVL Trees, its properties, related operations for height balancing and
applications.
Week Topic
17 Introduction to Hashing, its properties, representation, related functions and
applications
Hash functions: Division Method, Multiplication Method, Mid-square Method and
Folding methods
Collision Resolution Techniques: Linear Probing, Quadratic Probing and Separate
Chaining
18 End Term Exam
19 End Term Exam
Recommended Textbooks
1. Weiss, M. A. (2014). Data structures and algorithm analysis in C++, 4th Edition. Pearson.
ISBN: 9780132847377.
2. Lafore, R. (2002). Object-oriented programming in C++, 4th Edition. Pearson Education.
ISBN-10: 0672323087.
3. Lipschutz, S., & Pai, G. A. (2008). Data Structures. Tata McGraw-Hill Publishing Company
Limited. ISBN: 0070380015.
4. R.S. Salaria (2013). Data Structures: Theory, Problems and Algorithms, 1st Edition. Khanna
Publishing House. ISBN: 9789381068403.
Lab Weekly Schedule
The lab schedule for 17 weeks are detailed below
Week Topic
1 Array: Implementation of functions to perform insertion, deletion and linearly search
in an array.
2 Array: Implementation of Array Data Structure: Functions to perform iterative binary
search, recursive binary search and sorting such as selection sort, bubble sort and
insertion sort.
Function to Manipulate 2D array.
3 Singular linked list: Implementation of traversing and insertion functions in a Singular
linked list.
Implementation of Singular linked list as template.
4 Singular linked list: Implementation of deletion functions in singular linked list
5 Two way linked list: Implementation of traversing, insertion and deletion functions in
a two way linked list with.
6 Stack: Implementation of Stack using Array and Linked List.
7 Stack: Implementation of function related to various application of Stack.
8 Open Ended Lab
9 Exam Week
10 Mid Break
11 Queue: Implementation of Queue using Array and Linked List
12 Circular Queue: Implementation of Circular Queue
13 Graph: Implementation of Graph Data Structures along with DFS and BFS functions.
14 Binary Search Tree: Implementation of Insertion and traversing function in BST.
15 Binary Search Tree: Implementation of search and delete function in BST
16 Open Ended Lab
17 Lab Examination