Course Title: Data Structures
Course Code: DSC201 No. of credits: 4 (2+1+1)
Pre-requisite course code and title (if any): CSC 101
Department: Department of Computer and Computational Sciences
Course Coordinator(s): Course Instructor(s):
Contact Details:
Course Type: Major Course offered in: Semester II
Course Description
Data structure is a specific way to store and organize data in a computer's memory so that these data can
be used efficiently later. This course introduces about various data structures and their applications in
computer science domain together with how stacks work and function. Knowledge of trees based
structure and
Course Objectives
To study different kinds of data structures with their appropriate understanding.
To learn applications of data structures
To apply data structures in various programs
Learn to use data structures for different programs.
Course Content
Module Topic Learning
Hours
1. Introduction
Introduction to Algorithmic, Complexity- Time-Space Trade off. Introduction
to abstract data types, design, implementation and applications. Introduction
to List data structure. Arrays and Strings: Representation of Arrays in 12
Memory: one dimensional, Two dimensional and Multidimensional,
Accessing of elements of array, performing operations like Insertion, Deletion
and Searching. Sorting elements of arrays. Strings and String Operations.
2. Stacks and Queues: Introduction to data structures like Stacks and Queues.
Operations on Stacks and Queues, Array representation of Stacks,
Applications of Stacks: recursion, Polish expression and their compilation
conversion of infix expression to prefix and postfix expression, Operations of
Queues, Representations of Queues Applications of Queues Priority queues. 12
Linked Lists: Singly linked lists, Representation of linked list, Operations of
Linked list such as Traversing, Insertion and Deletion, Searching,
Applications of Linked List. Concepts of Circular linked list and Doubly
linked list and their Applications. Stacks and Queues as linked list.
3. Trees: Basic Terminology, Binary Trees and their representation, binary
search trees, various operations on Binary search trees like traversing,
12
searching, Insertion and Deletion Applications of Binary search Trees,
Complete Binary trees, Extended binary trees.
4. Graphs: Terminology and Representations, Graphs & Multi-graphs, Directed
Graphs Representation of graphs and their Transversal, Spanning trees,
12
shortest path and Transitive Closure, Activity Networks, Topological Sort and
Critical Paths.
Practicals:
1) Stack and Queue with Arrays:
(a) Implement a Stack using an array. Include operations for PUSH, POP, and PEEK.
(b) Implement a Queue using an array. Include operations for ENQUEUE, DEQUEUE, and
display the front element.
2) List Using Arrays: Implement a List using an array. Include operations for inserting,
deleting, and accessing elements in the list.
3) Linked List Implementations:
(a) Implement a Singly Linked List with operations to insert, delete, and search for
elements.
(b) Implement a Stack using a singly linked list. Demonstrate PUSH and POP
operations.
(c) Implement a Queue using a singly linked list. Demonstrate ENQUEUE and DEQUEUE
operations.
4) Applications of Lists: Implement a program to perform Polynomial Addition and
Subtraction using a linked list.
(a) Convert an Infix expression to Postfix expression using a stack.
(b) Evaluate a Postfix expression using a stack.
5) Binary Search Tree: Implement a Binary Search Tree (BST) with operations for
insertion, deletion, and searching of nodes.
6) AVL Tree: Implement an AVL Tree with operations for insertion, deletion, and
displaying the tree with balancing.
7) Heap Using Priority Queues: Implement a Min-Heap or Max-Heap using a priority
queue. Demonstrate insertion and deletion of elements.
8) Graph Representation and Traversal: Implement a Graph using adjacency matrix
or adjacency list.
a. Perform Breadth-First Traversal (BFT) of the graph.
b. Perform Depth-First Traversal (DFT) of the graph.
9) Searching Algorithms:
(a) Implement Linear Search to find an element in an unsorted array.
(b) Implement Binary Search to find an element in a sorted array.
10) Sorting Algorithms: Implement the following sorting algorithms:
a. Insertion Sort
b. Bubble Sort
c. Quick Sort
d. Merge Sort
Learning Outcomes
The course content provides the students with an over-all knowledge about
CO1: Explain the concept of time and space complexity of the algorithm.
CO2: Understand the use of fundamental data structures and algorithm appropriately to solve a
number of computational problems.
CO3: Apply various techniques to solve the problems.
CO4: Design programs using a variety of data structures such as stacks, queues, binary trees,
and graphs.
Text Books:
Horowitz and Sahni, “Fundamentals of Data structures”, Galgotia publications, Latest Ed.
Other Text Books:
Tannenbaum, “Data Structures”, PHI, Latest Ed.
Suggested Readings/Reference Books
An introduction to data structures and application by Jean Paul Tremblay & Pal G. Sorenson
(McGraw Hill).