UNIT-1 (1)
UNIT-1 (1)
Prateek A. Meshram
Assistant Professor,
Computer Engineering,
DYPIEMR, Akurdi, Pune
Course Structure
Course Code CSE1101
Credits 5
Pre-Requisites NA
L-T-P-C 3-1-2-5
COURSE OBJECTIVE
• The objective of the course is to introduce the fundamentals of Data
Structures.
• Study and implement various linear data structures- array, stack, queue,
and linked list.
• Study and implement various non-linear data structures- tree and binary
search tree.
• Discuss the working of several searching and sorting algorithms.
Syllabus
Modu Content No.
le No. of
Hour
s
1 MODULE-I: INTRODUCTION 7
Introduction to Data Structures: Concept, Need of Data Structure, Data,
Information, Data type, Data object, ADT and its advantages, Definition of
Data Structure, Primitive operations performed on Data Structures, Types ofData Structures.
Algorithm Analysis:-Complexity of an algorithm, Time and space
Complexity, Classes of a function, Comparison of function, Asymptotic
notations.
2 MODULE-II: SEARCHING AND SORTING 7
Searching- linear search, binary search, sorting- bubble, selection, insertion, merge, quick sort,
performance analysis of searching and sorting.
3 MODULE-III: LINEAR DATA STRUCTURE 8
Linked list- single, double, linked list operations- insert, delete, search, queue- insert, delete, and
stack- push, pop, application of these linear data structures.
4 MODULE-IV: NONLINEAR DATA STRUCTURE: TREE 7
Tree terminologies- all definitions, root, leaf, level, height, depth, types of tree, tree traversal, heap
sort, AVL tree
5 MODULE-V: NONLINEAR DATA STRUCTURE: GRAPH 7
Course Outcomes
On completion of the course the student should be able to
• Analyze step by step and develop algorithms to solve
real-world problems.
• Understanding various searching and sorting techniques.
• Implementing various data structures viz. Stacks, Queues,
Linked Lists.
• Implementing various nonlinear data structures viz tree.
• Implementing various nonlinear data structures viz graph.
LIST OF PRACTICALS:
There will be lab assignments based on data structure concepts to make students
familiar with their programming implementations. These assignments have to be
implemented using C.
1. Recursion, function, Structure: Objective is to make students revise C Programing
Concept.
2. 1D and 2D Arrays: Objective is to make students understand 1D and 2D
representation of arrays and their
usage.
3. Searching and Sorting: Objective is to make students familiar with different searching
and sorting methods
and understand their performance.
4. Linked List: Objective is learn linked list data structure and how to perform operations
on it.
5. Stack: Objective is to make students understand various operations of stack such
as push
and pop.
6. Queue: Objective is to learn queue data structure and various operations available
in it.
7. Tree: Objective is to make students understand tree data structure and perform
various
operations on it.
8. Graph: Objective is to make students understand graph data structure and
perform
various operations on it.
Text Book:
• 1. “Fundamentals of Data Structures in C”, Ellis Horowitz and Sartaj Sahni,
Computer Science Press.
• 2. “Data Structures Using C Aaron M. Tanenbaum”, By Aaron M. Tenenbaum
•Reference Book:
• 1. R. Gilberg, B. Forouzan, "Data Structures: A pseudo code approach with
C", Cenage Learning, Learning, ISBN 9788131503140.
• 2. “Algorithms Unlocked” by Thomas H. Cormen
• 3. Data Structures and Algorithms using Python, Rance D. Necaise, John
Wiley and Sons.
MODULE-I: INTRODUCTION
Introduction to Data Structures: Algorithm Analysis:
• Concept, • Complexity of an algorithm,
• Need of Data Structure, • Time and space Complexity,
• Data, Information, Data type, Data • Classes of a function,
object,
• Comparison of function,
• ADT and its advantages,
• Asymptotic notations.
• Definition of Data Structure,
• Primitive operations performed on
Data Structures,
• Types ofData Structures.
Introduction to data and data objects
•Computer : A programmable device that can store, retrieve, and
process data.(Combination of H/w & S/w )
•Hardware : things which we can touch.
•Software : things which we cannt touch.(Can only see)
•Programming: A programming language is a set of commands,
instructions, and other syntax use to create a software program.
•Data : Information in a form a computer can use
• Step 1 − START
• Step 2 − declare three integers a, b & c Step 3 − define values of
a&b
• Step 4 − add values of a & b
• Step 5 − store output of step 4 to c Step 6 − print c
• Step 7 − STOP
ALGORITHM ANALYSIS
• A Priori Analysis − This is a theoretical analysis of an
algorithm. Efficiency of an algorithm is measured by
assuming that all other factors, for example, processor
speed, are constant and have no effect on the
implementation
• A Posterior Analysis − This is an
empirical analysis of an algorithm. The selected
algorithm is implemented using programming language.
This is then executed on target computer machine. In this
analysis, actual statistics like running time and space
required, are collected.
CASES OF ANALYSIS
ALGORITHMS
•There are 3 types
1. Worst case
2. Best case
3. Average case