L T P/S SW/FW No.
of TOTAL
PSDA CREDIT
Course Title: Elements of Data Structures UNITS
Credit Units: 4 3 - 2 - 0 4
Course Level: Course Code: CSE328
Course Objectives:
• Understand fundamentals of data structures and their applications essential for programming/problem solving.
• Analyze Linear Data Structures: Stack, Queues, Lists.
• Analyze Non-Linear Data Structures: Trees, Graph.
• Assess appropriate data structure during program development/Problem Solving.
Pre-requisites:
1. Knowledge of C language is required.
Course Contents/Syllabus:
Module I: Introduction to Data Structures
Introduction: Dynamic aspects of operations on data, Characteristics of data structures, Creation and manipulation of data structures, Operations on
20%
data structures, Types of data structures – linear and nonlinear. Introduction to algorithm: Asymptotic notations, Analysis of algorithms: Time and
Space complexity.
Module II: Arrays and Linked Lists
Arrays: Dynamic memory allocation, one-dimensional arrays, multidimensional arrays, operations on arrays, storage – Row major order, Column 20%
major order. Linked lists: types of linked lists – singly, doubly and circularly linked lists, operations on linked lists.
Module III: Stacks and Queues
Stacks: Implementation of stacks– array and linked list, operations on stacks, Applications of Stacks, Notations – infix, prefix and postfix, Conversion
20%
and evaluation of arithmetic expressions using Stacks. Queues: Implementation of queues– array and linked list, operations on queues, Types of
queues – queue, double ended queue and priority queue.
Module IV: Tress and Graphs
Trees: Binary tree, Binary search tree, Threaded binary tree, Height balanced trees, Tries, Heaps, Hash tables. Graph traversals: Breadth First Search,
20%
Depth First Search, Shortest path: Depth first search in directed and undirected graphs. Union-find data structure and applications. Directed acyclic
graphs; topological sort.
Module V: Searching and Sorting 20%
Searching: Linear search, Binary search and Hashing. Algorithms and data structures for sorting: Insertion Sort, Bubble sort, Selection Sort, Merge
sort, Quick Sort, Heap sort, Radix sort, Bucket sort. Algorithm design techniques: Divide and conquer, Greedy approach, dynamic programming.
Course Learning Outcomes:
• Able to understand the concepts of data structure, data type and array data structure.
• Able to analyze algorithms and determine their time complexity.
• Able to implement linked list data structure to solve various problems.
• Able to understand and apply various data structure such as stacks, queues, trees and graphs to solve various computing problems using C-programming
language.
Pedagogy for Course Delivery: The class will be taught using theory, presentations and seminars. In addition to assigning the case studies, the class will be
taught audio-visuals aids and problem based methods. Moreover, the course instructor will spend considerable time in understanding the concept of innovation
through the eyes of the industry. The instructor will cover the ways to think innovatively liberally using thinking techniques.
List of Professional Skill Development Activities (PSDA):
NIL
Lab/Practical details, if applicable:
List of Experiments:
• Write a C programs to implement recursive and non-recursive i) Linear search ii) Binary search.
• Write a C programs to implement i) Bubble sort ii) Selection sort iii) quick sort iv) insertion sort
• Write a C programs to implement the following using an array. a) Stack ADT b) Queue ADT
• Write a C programs to implement list ADT to perform following operations
a) Insert an element into a list.
b) Delete an element from list
c) Search for a key element in list
d)count number of nodes in list.
• Write C programs to implement the following using a singly linked list. a) Stack ADT b) Queue ADT.
• Write C programs to implement the deque (double ended queue) ADT using a doubly linked list and an array.
• Write a C program to perform the following operations:
a) Insert an element into a binary search tree.
b) Delete an element from a binary search tree.
c) Search for a key element in a binary search tree.
• Write C programs for implementing the following sorting methods: a) Merge sort b) Heap sort.
• Write C programs that use recursive functions to traverse the given binary tree in a) Preorder b) Inorder and c) Postorder.
• Write a C program to perform the following operations a) Insertion into a B-tree b) Deletion from a B-tree
• Write a C program to perform the following operations a) Insertion into an AVL-tree b) Deletion from an AVL-tree.
• Write a C program to implement all the functions of a dictionary (ADT).
Assessment/ Examination Scheme:
Theory L/T (%) Lab/Practical/Studio (%)
75% 25%
Theory Assessment (L&T):
Continuous End Term
Assessment/Internal Examination
Assessment (60%)
(40%)
Components (Drop Attendance Class Test Assignment Viva Group Presentation
down)
Linkage of PSDA
with Internal
Assessment
Component, if any
Weightage (%) 5 15 10 5 5 60
Lab/ Practical/ Studio Assessment:
Continuous Assessment/Internal Assessment End Term Examination
(40 %) (60 %)
Components (Drop down Performance Lab Record Viva Attendance
60%
Weightage (%) 15% 10% 10% 5%
Text Reading:
1. Horowitz and Sahani, “Fundamentals of data Structures”, Galgotia Publication Pvt. Ltd., New Delhi.
2. A. M. Tenenbaum, “Data Structures using C & C”, Prentice-Hall of India Pvt. Ltd., New Delhi.
References:
1. R. Kruse et al, “Data Structures and Program Design in C”, Pearson Education Asia, Delhi-2002
2. Bruno R Preiss, “Data Structures and Algorithms with Object Oriented Design Pattern in C”, Jhon Wiley & Sons, Inc.
3. Gilberg Forozan , “Data Structure – A pseudo code approach with C”, Cengage Learning, New Delhi.
4. Programming in C, E. Balaguruswamy. TMH, 4th, 2010.