SlideShare a Scribd company logo
1 of 49
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
1
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Understand the well-defined, clear, and simple approach
of program design
 Learn fundamental aspects of algorithm and its
characteristics
 Learn basic concepts such as data, data type, data
object, data structure, etc.
 Know the power of Abstract Data Type (ADT)
 Study about Software Development Life Cycle (SDLC)
2
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
3
Program Data
Computer
Output
Fig 1: Processing a Program
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
4
 Machine Language
 Assembly Language
 High-level Language
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 OOP is used to model the real world through objects
 Object-oriented decomposition views software as a set of
well-defined objects that model entities in the application
domain
 These objects interact with each other to form a software
system
5
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Data
 Data Type
 Data Object
 Data structure
 Abstract Data Types (ADT)
6
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
7
 Data is nothing but a piece of information
 Data input, data manipulation (or data processing)
and data output are the themes of computer
 The address of the ith element is calculated by the
following formula
Atomic Data
Composite Data
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
8
 Data type is a term that specifies the type of data that a
variable may hold in the programming language
Built-in Data Types
User Defined Data Types
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
9
 A Data Object represents a container for data values
a place where data values may be stored
and later retrieved
 Data Object is runtime instance of data structure
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
10
 A combination of elements each of which is either a data
type or another data structure and
 A set of associations or relationships (structures)
involving the combined elements
 A data structure is a set of domains D, a designated
domain d Î D, a set of function F, and a set of axioms A
 The triple (D, F, A) denotes the data structure d and it will
usually be written as d
A Data Structure is
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
11
 An Abstract Data Type is a data declaration packaged
together with the operations that are meaningful for the
data type
 Abstract Data Type includes declaration of data,
implementation of operations, and encapsulation of
data and operations
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Primitive and Non-Primitive Data Structures
 Linear and Non-linear Data Structures
 Static and Dynamic
 Persistent and Ephemeral Data Structures
 Sequential Access and Direct Access Data Structures
12
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
13
 A Data Structure is said to be linear if its
elements form a sequence or a linear list
 Linear Data Structure, every data element has
unique successor and unique predecessor
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
14
 In non-linear data structures, every data element
may have more than one predecessor as well as
successor
 Elements do not form any particular linear
sequence
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
15
 Characteristics of Algorithm
 Algorithmic
 Design Tools
 Pseudo Code
 Flow chart
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
16
 The step-by-step solution is called an Algorithm
 Algorithm is independent of computer system and
programming language
 The real world performance of any software depends on two
things
The algorithm chosen, and
The suitability and efficiency of various layers of
implementation
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
17
 Input
 Output
 Unambiguous Steps
 Finiteness
 Effectiveness
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 How to devise algorithms
 How to validate algorithms
 How to analyze algorithms
18
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Pseudo code Notations
 Algorithm Header
 Purpose
 Conditions and Return Statement
 Statement Numbers
 Variables
 Statement Constructs
 Sub Algorithms
19
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
 Sequence
 Decision
 Repetition
20
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
21
Figure 2: Sequence construct
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
22
Figure 3: Decision Construct
If a condition is true,
Then
Else
Algorithm
Purpose :Comparing two numbers
Pre: None
Post: None
Return: None
1) Read two numbers Num1 and Num2
2) If Num1 > Num2
a. Then Print Num1
b. Else Print Num2
3) Stop
Series of Actions
Series of Actions
Example
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
23
Figure 3: Decision Construct
If a condition is true,
Then
Algorithm
Purpose :Comparing two numbers
Pre: None
Post: None
Return: None
1) Read two numbers Num1 and Num2
2) If Num1 > Num2
a. Then Print Num1
b. Else Print Num2
3) Stop
Series of Actions
Series of Actions
Example
24
Data Structures in C++ by Dr. Varsha Patil Oxford University Press © 2012
Figure 4: Repetition Construct
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
25
Relationship between Data, Data
Structures, and Algorithms
 A data structure represents a set of data items with
a specific relationship between them.
 The success of a software project often depends
upon the choices made in the representation of
data and algorithms designed to process the data
 The proper choice of a data structure can be a key
point in the design of many algorithms
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
26
 Specification
 Implementation
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
27
 A very effective tool to show the logic flow of a program
 A flow chart is a pictorial representation of an algorithm.
 It hides all of the details of an algorithm by giving the
picture;
 It shows how the algorithm flows from beginning to end
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
28
Figure 5: Flow chart for adding three
numbers
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
29
 Complexity of Algorithms
 Space Complexity
 Time Complexity
 Computing Time Complexity of Algorithm
 Big-O Notation
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
30
 Amount of computer memory required during the
program execution, as a function of the input size
 Space complexity measurement which is space
requirement of an algorithm can be done at two different
times:
 Compile time and
 Execution time
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
31
 Compile Time Space Complexity is defined as the
storage requirement of a program at compile time
 Space Complexity = Space needed of compile time
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
32
 If program is recursive or uses dynamic variables or
dynamic data structure then there is a need to determine
space complexity at runtime
 The memory requirement is summation of the
 Program Space
 Data Space And
 Stack Space
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
33
 Time Complexity of an algorithm is a measure of how
much time is required to execute an algorithm for a given
number of inputs
 Time Complexity T(P) is the time taken by program P
and the sum of the compile and execution time
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
34
 Worst Case
Complexity of the algorithm is the function defined
by the maximum number of steps taken on any instance
of size n
 Best Case
Complexity of the algorithm is the function defined
by the minimum number of steps taken on any instance
of size n
 Average Case
Complexity of the algorithm is the function defined
by an average number of steps taken on any instance of
size n
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
35
 The total time taken by the algorithm or program is
calculated using the sum of the time taken by each of
executable statement in algorithm or program
 Time required by each statement depends on
 Time required for executing it once
 Number of times the statement is executed
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
36
Software Engineering
 Software Engineering is the establishment
and use of sound engineering methods
 and principles to obtain reliable software that
works on real machines
 A fundamental concept in Software
Engineering is the Software Development
Life Cycle (SDLC)
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
37
Software Engineering
 Analysis Phase
 Design Phase
 Implementation Phase
 Testing Phase
 Verification
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
38
Figure 6: System Development Phases
Software Engineering
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
39
Analysis Phase
 Define the User
 Define the Needs
 Define the Requirements
 Define the Methods
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
40
Design Phase
 Modularity
The design phase uses a very well-
established principle called Modularity
The whole package is divided into small
modules
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
41
Implementation Phase
Tools
 Flowchart
 Pseudo Code
 Coding
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
42
Testing Phase
Testing Phase
Once the programs have been written, they must be
tested.
There are two types of testing:
 Black Box
 White Box
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
43
Verification
 Program verification is a process to prove that
the program does what it is intended to do
 It is said that 'even verification must be verified'
 This means, along with system, tests made are
to be verified
 Also, every software quality must be verified
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
44
KEY TERMS
 DATA
 DATA TYPE
 DATA OBJECT
 DATA STRUCTURE
 ABSTRACT DATA TYPE
 LINEAR DATA STRUCUTRE
 NON LINEAR DATA STRUCTURE
 ALGORITHM
 ASSEMBLER
 COMPILER
 PROGRAM
 PSEUDOCODE
 FLOWCHART
 SOFTWARE ENGINEERING
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
45
Summary
 Computer is a programmable data processing machine that accepts
input; instructions to process input (program) and generates
required output. Data and program are stored in computer’s
memory. A program is written in computer’s language.
 The art of programming consists of designing or choosing
algorithms and expressing them in a programming language. An
algorithm is a stepwise description of action which leads the
problem from its start state to its goal state
 One of the common tools used to define algorithms is pseudo code.
Pseudo code is an English-like representation of the code required
for an algorithm. It is part of English, part structured code
 A very effective tool to show the logic flow of a program is the flow
chart. A flow chart is a pictorial representation of an algorithm. It
hides all of the details of an algorithm by giving the picture; it
shows how the algorithm flows from beginning to end
 Program verification is a process to prove that the program does
what it is intended to do
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
46
Summary
 Engineering is the establishment and use of sound
engineering methods and principles to obtain reliable
software that works on real machines
 A data structure represents a set of data items with a specific
relationship between them. The success of a software project
often depends upon the choices made in the representation
of data and algorithms designed to process the data. The
proper choice of a data structure can be a key point in the
design of many algorithms
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
47
Summary
 The various types Software Engineering is the establishment
and use of sound engineering methodologies and the
principle to writing reliable of data structures are:
 Primitive and Non-primitive data structures
 Linear and Non-linear data structures
 Static and Dynamic data structures
 Persistent and Ephemeral data structures
 Sequential and Direct access data structures
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
48
Summary
 There is an intimate relationship between the structuring of data, and
analysis of algorithms. In fact, a data structure and an algorithm should
be thought of as a one single unit, neither one along making sense
without the other. · Algorithms heavily depend on the organization of
data
 There can be several organizations of data and/or algorithms for a
given problem. Difficulty lies in deciding which algorithms is the best.
We can compare one algorithm with other and choose the best. For
comparison we need to analyze algorithms. Analysis involves
measuring the performance of an algorithm in terms of time and space
complexity
Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil
49

More Related Content

What's hot

Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
Ehtisham Ali
 
Chapter 7 - Input Output Statements in C++
Chapter 7 - Input Output Statements in C++Chapter 7 - Input Output Statements in C++
Chapter 7 - Input Output Statements in C++
Deepak Singh
 

What's hot (20)

Real analysis
Real analysis Real analysis
Real analysis
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Algorithm
AlgorithmAlgorithm
Algorithm
 
DBMS Canonical cover
DBMS Canonical coverDBMS Canonical cover
DBMS Canonical cover
 
8. Graph - Data Structures using C++ by Varsha Patil
8. Graph - Data Structures using C++ by Varsha Patil8. Graph - Data Structures using C++ by Varsha Patil
8. Graph - Data Structures using C++ by Varsha Patil
 
Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)Presentation on Breadth First Search (BFS)
Presentation on Breadth First Search (BFS)
 
The Stack And Recursion
The Stack And RecursionThe Stack And Recursion
The Stack And Recursion
 
Longest Common Subsequence (LCS) Algorithm
Longest Common Subsequence (LCS) AlgorithmLongest Common Subsequence (LCS) Algorithm
Longest Common Subsequence (LCS) Algorithm
 
6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil6. Linked list - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil
 
Chapter 7 - Input Output Statements in C++
Chapter 7 - Input Output Statements in C++Chapter 7 - Input Output Statements in C++
Chapter 7 - Input Output Statements in C++
 
Python Programming
Python Programming Python Programming
Python Programming
 
Python Data-Types
Python Data-TypesPython Data-Types
Python Data-Types
 
Basic data structures in python
Basic data structures in pythonBasic data structures in python
Basic data structures in python
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
 
Array data structure
Array data structureArray data structure
Array data structure
 
Heap and heapsort
Heap and heapsortHeap and heapsort
Heap and heapsort
 
Data structures chapter 1
Data structures chapter  1Data structures chapter  1
Data structures chapter 1
 
Python programming : Arrays
Python programming : ArraysPython programming : Arrays
Python programming : Arrays
 
c_programming
c_programmingc_programming
c_programming
 
Data Structure: Algorithm and analysis
Data Structure: Algorithm and analysisData Structure: Algorithm and analysis
Data Structure: Algorithm and analysis
 

Viewers also liked

Data Structure
Data StructureData Structure
Data Structure
sheraz1
 
Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structures
Niraj Agarwal
 
Norman Ortolan E Port
Norman Ortolan E PortNorman Ortolan E Port
Norman Ortolan E Port
nortolan
 

Viewers also liked (20)

4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil
 
Discrete Mathematics S. Lipschutz, M. Lipson And V. H. Patil
Discrete Mathematics S. Lipschutz, M. Lipson And V. H. PatilDiscrete Mathematics S. Lipschutz, M. Lipson And V. H. Patil
Discrete Mathematics S. Lipschutz, M. Lipson And V. H. Patil
 
5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patil5. Queue - Data Structures using C++ by Varsha Patil
5. Queue - Data Structures using C++ by Varsha Patil
 
10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil10. Search Tree - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil
 
Data Structure
Data StructureData Structure
Data Structure
 
stacks in algorithems and data structure
stacks in algorithems and data structurestacks in algorithems and data structure
stacks in algorithems and data structure
 
12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil12. Heaps - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil
 
មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete
 
Concept Of C++ Data Types
Concept Of C++ Data TypesConcept Of C++ Data Types
Concept Of C++ Data Types
 
Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structures
 
Lec27
Lec27Lec27
Lec27
 
Preparation Data Structures 03 abstract data_types
Preparation Data Structures 03 abstract data_typesPreparation Data Structures 03 abstract data_types
Preparation Data Structures 03 abstract data_types
 
Lec3
Lec3Lec3
Lec3
 
Ch17
Ch17Ch17
Ch17
 
Chapter03
Chapter03Chapter03
Chapter03
 
Pooja
PoojaPooja
Pooja
 
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
A Multidimensional Distributed Array Abstraction for PGAS (HPCC'16)
 
Norman Ortolan E Port
Norman Ortolan E PortNorman Ortolan E Port
Norman Ortolan E Port
 
The Concept Of Assessment in Biology
 The Concept Of Assessment in Biology The Concept Of Assessment in Biology
The Concept Of Assessment in Biology
 

Similar to 1. Fundamental Concept - Data Structures using C++ by Varsha Patil

Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)
Asfand Hassan
 
Dsc -session01_introduction_to_data_structures_v2_1_.2
Dsc  -session01_introduction_to_data_structures_v2_1_.2Dsc  -session01_introduction_to_data_structures_v2_1_.2
Dsc -session01_introduction_to_data_structures_v2_1_.2
sivakumar323849
 
Csc1100 lecture01 ch01 pt2-paradigm (1)
Csc1100 lecture01 ch01 pt2-paradigm (1)Csc1100 lecture01 ch01 pt2-paradigm (1)
Csc1100 lecture01 ch01 pt2-paradigm (1)
IIUM
 
Csc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigmCsc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigm
IIUM
 

Similar to 1. Fundamental Concept - Data Structures using C++ by Varsha Patil (20)

15. STL - Data Structures using C++ by Varsha Patil
15. STL - Data Structures using C++ by Varsha Patil15. STL - Data Structures using C++ by Varsha Patil
15. STL - Data Structures using C++ by Varsha Patil
 
16. Algo analysis & Design - Data Structures using C++ by Varsha Patil
16. Algo analysis & Design - Data Structures using C++ by Varsha Patil16. Algo analysis & Design - Data Structures using C++ by Varsha Patil
16. Algo analysis & Design - Data Structures using C++ by Varsha Patil
 
Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data Science
 
Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data Science
 
Lec1
Lec1Lec1
Lec1
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)
 
Final Project presentation (on App devlopment)
Final Project presentation (on App devlopment)Final Project presentation (on App devlopment)
Final Project presentation (on App devlopment)
 
Ch7
Ch7Ch7
Ch7
 
Ch7
Ch7Ch7
Ch7
 
Final
FinalFinal
Final
 
Chapter 1- IT.pptx
Chapter 1- IT.pptxChapter 1- IT.pptx
Chapter 1- IT.pptx
 
Decision Making Framework in e-Business Cloud Environment Using Software Metr...
Decision Making Framework in e-Business Cloud Environment Using Software Metr...Decision Making Framework in e-Business Cloud Environment Using Software Metr...
Decision Making Framework in e-Business Cloud Environment Using Software Metr...
 
Regression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms ExcelRegression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms Excel
 
Project Evaluation and Estimation in Software Development
Project Evaluation and Estimation in Software DevelopmentProject Evaluation and Estimation in Software Development
Project Evaluation and Estimation in Software Development
 
Dsc -session01_introduction_to_data_structures_v2_1_.2
Dsc  -session01_introduction_to_data_structures_v2_1_.2Dsc  -session01_introduction_to_data_structures_v2_1_.2
Dsc -session01_introduction_to_data_structures_v2_1_.2
 
Csc1100 lecture01 ch01 pt2-paradigm (1)
Csc1100 lecture01 ch01 pt2-paradigm (1)Csc1100 lecture01 ch01 pt2-paradigm (1)
Csc1100 lecture01 ch01 pt2-paradigm (1)
 
Csc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigmCsc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigm
 
ICT DBA3 03 0710 Designing a Database.pptx
ICT DBA3 03 0710 Designing a Database.pptxICT DBA3 03 0710 Designing a Database.pptx
ICT DBA3 03 0710 Designing a Database.pptx
 
Data analytics using R programming
Data analytics using R programmingData analytics using R programming
Data analytics using R programming
 

Recently uploaded

如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
wsppdmt
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
gajnagarg
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
chadhar227
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
ahmedjiabur940
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
gajnagarg
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
SayantanBiswas37
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Klinik kandungan
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
nirzagarg
 

Recently uploaded (20)

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
High Profile Call Girls Service in Jalore { 9332606886 } VVIP NISHA Call Girl...
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
 
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Satna [ 7014168258 ] Call Me For Genuine Models We ...
 

1. Fundamental Concept - Data Structures using C++ by Varsha Patil

  • 1. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 1
  • 2. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Understand the well-defined, clear, and simple approach of program design  Learn fundamental aspects of algorithm and its characteristics  Learn basic concepts such as data, data type, data object, data structure, etc.  Know the power of Abstract Data Type (ADT)  Study about Software Development Life Cycle (SDLC) 2
  • 3. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 3 Program Data Computer Output Fig 1: Processing a Program
  • 4. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 4  Machine Language  Assembly Language  High-level Language
  • 5. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  OOP is used to model the real world through objects  Object-oriented decomposition views software as a set of well-defined objects that model entities in the application domain  These objects interact with each other to form a software system 5
  • 6. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Data  Data Type  Data Object  Data structure  Abstract Data Types (ADT) 6
  • 7. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 7  Data is nothing but a piece of information  Data input, data manipulation (or data processing) and data output are the themes of computer  The address of the ith element is calculated by the following formula Atomic Data Composite Data
  • 8. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 8  Data type is a term that specifies the type of data that a variable may hold in the programming language Built-in Data Types User Defined Data Types
  • 9. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 9  A Data Object represents a container for data values a place where data values may be stored and later retrieved  Data Object is runtime instance of data structure
  • 10. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 10  A combination of elements each of which is either a data type or another data structure and  A set of associations or relationships (structures) involving the combined elements  A data structure is a set of domains D, a designated domain d Î D, a set of function F, and a set of axioms A  The triple (D, F, A) denotes the data structure d and it will usually be written as d A Data Structure is
  • 11. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 11  An Abstract Data Type is a data declaration packaged together with the operations that are meaningful for the data type  Abstract Data Type includes declaration of data, implementation of operations, and encapsulation of data and operations
  • 12. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Primitive and Non-Primitive Data Structures  Linear and Non-linear Data Structures  Static and Dynamic  Persistent and Ephemeral Data Structures  Sequential Access and Direct Access Data Structures 12
  • 13. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 13  A Data Structure is said to be linear if its elements form a sequence or a linear list  Linear Data Structure, every data element has unique successor and unique predecessor
  • 14. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 14  In non-linear data structures, every data element may have more than one predecessor as well as successor  Elements do not form any particular linear sequence
  • 15. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 15  Characteristics of Algorithm  Algorithmic  Design Tools  Pseudo Code  Flow chart
  • 16. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 16  The step-by-step solution is called an Algorithm  Algorithm is independent of computer system and programming language  The real world performance of any software depends on two things The algorithm chosen, and The suitability and efficiency of various layers of implementation
  • 17. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 17  Input  Output  Unambiguous Steps  Finiteness  Effectiveness
  • 18. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  How to devise algorithms  How to validate algorithms  How to analyze algorithms 18
  • 19. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Pseudo code Notations  Algorithm Header  Purpose  Conditions and Return Statement  Statement Numbers  Variables  Statement Constructs  Sub Algorithms 19
  • 20. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil  Sequence  Decision  Repetition 20
  • 21. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 21 Figure 2: Sequence construct
  • 22. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 22 Figure 3: Decision Construct If a condition is true, Then Else Algorithm Purpose :Comparing two numbers Pre: None Post: None Return: None 1) Read two numbers Num1 and Num2 2) If Num1 > Num2 a. Then Print Num1 b. Else Print Num2 3) Stop Series of Actions Series of Actions Example
  • 23. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 23 Figure 3: Decision Construct If a condition is true, Then Algorithm Purpose :Comparing two numbers Pre: None Post: None Return: None 1) Read two numbers Num1 and Num2 2) If Num1 > Num2 a. Then Print Num1 b. Else Print Num2 3) Stop Series of Actions Series of Actions Example
  • 24. 24 Data Structures in C++ by Dr. Varsha Patil Oxford University Press © 2012 Figure 4: Repetition Construct
  • 25. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 25 Relationship between Data, Data Structures, and Algorithms  A data structure represents a set of data items with a specific relationship between them.  The success of a software project often depends upon the choices made in the representation of data and algorithms designed to process the data  The proper choice of a data structure can be a key point in the design of many algorithms
  • 26. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 26  Specification  Implementation
  • 27. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 27  A very effective tool to show the logic flow of a program  A flow chart is a pictorial representation of an algorithm.  It hides all of the details of an algorithm by giving the picture;  It shows how the algorithm flows from beginning to end
  • 28. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 28 Figure 5: Flow chart for adding three numbers
  • 29. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 29  Complexity of Algorithms  Space Complexity  Time Complexity  Computing Time Complexity of Algorithm  Big-O Notation
  • 30. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 30  Amount of computer memory required during the program execution, as a function of the input size  Space complexity measurement which is space requirement of an algorithm can be done at two different times:  Compile time and  Execution time
  • 31. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 31  Compile Time Space Complexity is defined as the storage requirement of a program at compile time  Space Complexity = Space needed of compile time
  • 32. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 32  If program is recursive or uses dynamic variables or dynamic data structure then there is a need to determine space complexity at runtime  The memory requirement is summation of the  Program Space  Data Space And  Stack Space
  • 33. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 33  Time Complexity of an algorithm is a measure of how much time is required to execute an algorithm for a given number of inputs  Time Complexity T(P) is the time taken by program P and the sum of the compile and execution time
  • 34. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 34  Worst Case Complexity of the algorithm is the function defined by the maximum number of steps taken on any instance of size n  Best Case Complexity of the algorithm is the function defined by the minimum number of steps taken on any instance of size n  Average Case Complexity of the algorithm is the function defined by an average number of steps taken on any instance of size n
  • 35. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 35  The total time taken by the algorithm or program is calculated using the sum of the time taken by each of executable statement in algorithm or program  Time required by each statement depends on  Time required for executing it once  Number of times the statement is executed
  • 36. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 36 Software Engineering  Software Engineering is the establishment and use of sound engineering methods  and principles to obtain reliable software that works on real machines  A fundamental concept in Software Engineering is the Software Development Life Cycle (SDLC)
  • 37. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 37 Software Engineering  Analysis Phase  Design Phase  Implementation Phase  Testing Phase  Verification
  • 38. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 38 Figure 6: System Development Phases Software Engineering
  • 39. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 39 Analysis Phase  Define the User  Define the Needs  Define the Requirements  Define the Methods
  • 40. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 40 Design Phase  Modularity The design phase uses a very well- established principle called Modularity The whole package is divided into small modules
  • 41. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 41 Implementation Phase Tools  Flowchart  Pseudo Code  Coding
  • 42. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 42 Testing Phase Testing Phase Once the programs have been written, they must be tested. There are two types of testing:  Black Box  White Box
  • 43. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 43 Verification  Program verification is a process to prove that the program does what it is intended to do  It is said that 'even verification must be verified'  This means, along with system, tests made are to be verified  Also, every software quality must be verified
  • 44. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 44 KEY TERMS  DATA  DATA TYPE  DATA OBJECT  DATA STRUCTURE  ABSTRACT DATA TYPE  LINEAR DATA STRUCUTRE  NON LINEAR DATA STRUCTURE  ALGORITHM  ASSEMBLER  COMPILER  PROGRAM  PSEUDOCODE  FLOWCHART  SOFTWARE ENGINEERING
  • 45. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 45 Summary  Computer is a programmable data processing machine that accepts input; instructions to process input (program) and generates required output. Data and program are stored in computer’s memory. A program is written in computer’s language.  The art of programming consists of designing or choosing algorithms and expressing them in a programming language. An algorithm is a stepwise description of action which leads the problem from its start state to its goal state  One of the common tools used to define algorithms is pseudo code. Pseudo code is an English-like representation of the code required for an algorithm. It is part of English, part structured code  A very effective tool to show the logic flow of a program is the flow chart. A flow chart is a pictorial representation of an algorithm. It hides all of the details of an algorithm by giving the picture; it shows how the algorithm flows from beginning to end  Program verification is a process to prove that the program does what it is intended to do
  • 46. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 46 Summary  Engineering is the establishment and use of sound engineering methods and principles to obtain reliable software that works on real machines  A data structure represents a set of data items with a specific relationship between them. The success of a software project often depends upon the choices made in the representation of data and algorithms designed to process the data. The proper choice of a data structure can be a key point in the design of many algorithms
  • 47. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 47 Summary  The various types Software Engineering is the establishment and use of sound engineering methodologies and the principle to writing reliable of data structures are:  Primitive and Non-primitive data structures  Linear and Non-linear data structures  Static and Dynamic data structures  Persistent and Ephemeral data structures  Sequential and Direct access data structures
  • 48. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 48 Summary  There is an intimate relationship between the structuring of data, and analysis of algorithms. In fact, a data structure and an algorithm should be thought of as a one single unit, neither one along making sense without the other. · Algorithms heavily depend on the organization of data  There can be several organizations of data and/or algorithms for a given problem. Difficulty lies in deciding which algorithms is the best. We can compare one algorithm with other and choose the best. For comparison we need to analyze algorithms. Analysis involves measuring the performance of an algorithm in terms of time and space complexity
  • 49. Oxford University Press © 2012Data Structures Using C++ by Dr Varsha Patil 49