SlideShare a Scribd company logo
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

PPTX
Linked list
PPTX
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
PPTX
Circular link list.ppt
PPTX
Pointers in c++
PPTX
Directed Acyclic Graph Representation of basic blocks
PPTX
Data Structure - Elementary Data Organization
PDF
Algorithms Lecture 1: Introduction to Algorithms
PDF
Asymptotic Notation
Linked list
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
Circular link list.ppt
Pointers in c++
Directed Acyclic Graph Representation of basic blocks
Data Structure - Elementary Data Organization
Algorithms Lecture 1: Introduction to Algorithms
Asymptotic Notation

What's hot (20)

PPTX
Asymptotic Notations
PPTX
PDF
13. Pointer and 2D array
PPTX
Bfs and Dfs
PPTX
OOPS In JAVA.pptx
PPTX
NFA & DFA
PPTX
Pointer in c program
PPT
Stacks
PPTX
Polish Notation In Data Structure
PPTX
Data Wrangling
PPTX
Decision Making Statement in C ppt
PPTX
Data Structure and Algorithms The Tower of Hanoi
PDF
VIT351 Software Development VI Unit3
PPTX
Data structure by Digvijay
PPTX
Operators in java
PPT
ANALYSIS-AND-DESIGN-OF-ALGORITHM.ppt
PPTX
AI Unification.pptx
PPT
Pointers C programming
PPTX
Binary Tree in Data Structure
PDF
Searching and Sorting Techniques in Data Structure
Asymptotic Notations
13. Pointer and 2D array
Bfs and Dfs
OOPS In JAVA.pptx
NFA & DFA
Pointer in c program
Stacks
Polish Notation In Data Structure
Data Wrangling
Decision Making Statement in C ppt
Data Structure and Algorithms The Tower of Hanoi
VIT351 Software Development VI Unit3
Data structure by Digvijay
Operators in java
ANALYSIS-AND-DESIGN-OF-ALGORITHM.ppt
AI Unification.pptx
Pointers C programming
Binary Tree in Data Structure
Searching and Sorting Techniques in Data Structure
Ad

Viewers also liked (20)

PPTX
4. Recursion - Data Structures using C++ by Varsha Patil
PPTX
7. Tree - Data Structures using C++ by Varsha Patil
PPTX
6. Linked list - Data Structures using C++ by Varsha Patil
PDF
Discrete Mathematics S. Lipschutz, M. Lipson And V. H. Patil
PPTX
5. Queue - Data Structures using C++ by Varsha Patil
PPTX
10. Search Tree - Data Structures using C++ by Varsha Patil
PPS
Data Structure
PPT
stacks in algorithems and data structure
PPTX
3. Stack - Data Structures using C++ by Varsha Patil
PPTX
8. Graph - Data Structures using C++ by Varsha Patil
PPTX
12. Heaps - Data Structures using C++ by Varsha Patil
PPT
មេរៀនៈ Data Structure and Algorithm in C/C++
PPTX
9. Searching & Sorting - Data Structures using C++ by Varsha Patil
PPT
Database structure Structures Link list and trees and Recurison complete
PPTX
Concept Of C++ Data Types
 
PPT
Fundamentals of data structures
PPT
PDF
Preparation Data Structures 03 abstract data_types
PPT
Lec3
PPT
Ch17
4. Recursion - Data Structures using C++ by Varsha Patil
7. Tree - Data Structures using C++ by Varsha Patil
6. Linked list - Data Structures using C++ by Varsha Patil
Discrete Mathematics S. Lipschutz, M. Lipson And V. H. Patil
5. Queue - Data Structures using C++ by Varsha Patil
10. Search Tree - Data Structures using C++ by Varsha Patil
Data Structure
stacks in algorithems and data structure
3. Stack - Data Structures using C++ by Varsha Patil
8. Graph - Data Structures using C++ by Varsha Patil
12. Heaps - Data Structures using C++ by Varsha Patil
មេរៀនៈ Data Structure and Algorithm in C/C++
9. Searching & Sorting - Data Structures using C++ by Varsha Patil
Database structure Structures Link list and trees and Recurison complete
Concept Of C++ Data Types
 
Fundamentals of data structures
Preparation Data Structures 03 abstract data_types
Lec3
Ch17
Ad

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

PPTX
15. STL - Data Structures using C++ by Varsha Patil
PPTX
16. Algo analysis & Design - Data Structures using C++ by Varsha Patil
PPTX
Data Science as a Service: Intersection of Cloud Computing and Data Science
PPTX
Data Science as a Service: Intersection of Cloud Computing and Data Science
PPTX
Lecture 1.pptx
PDF
Data structure and Alogorithm analysis unit one
PDF
Mathematical Modeling using MATLAB, by U.M. Sundar Senior Application Enginee...
PPT
Oop lec 2(introduction to object oriented technology)
PPTX
Final Project presentation (on App devlopment)
PPTX
PPT
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
PDF
data pipelines complexity human expertise and LLM era
PPTX
PPTX
Chapter 1- IT.pptx
PPT
System Analysis and Design in a changing world 5th edition
PPT
software engineering software development life cycle
PPT
system and analysis design ppt in this you
PDF
Decision Making Framework in e-Business Cloud Environment Using Software Metr...
15. STL - 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 Science
Lecture 1.pptx
Data structure and Alogorithm analysis unit one
Mathematical Modeling using MATLAB, by U.M. Sundar Senior Application Enginee...
Oop lec 2(introduction to object oriented technology)
Final Project presentation (on App devlopment)
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
data pipelines complexity human expertise and LLM era
Chapter 1- IT.pptx
System Analysis and Design in a changing world 5th edition
software engineering software development life cycle
system and analysis design ppt in this you
Decision Making Framework in e-Business Cloud Environment Using Software Metr...

Recently uploaded (20)

PDF
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PPTX
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PPTX
CEE 2 REPORT G7.pptxbdbshjdgsgjgsjfiuhsd
PPTX
Moving the Public Sector (Government) to a Digital Adoption
PDF
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
PPTX
1_Introduction to advance data techniques.pptx
PDF
Clinical guidelines as a resource for EBP(1).pdf
PDF
Introduction to Business Data Analytics.
PPTX
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
PPT
Quality review (1)_presentation of this 21
PPTX
Global journeys: estimating international migration
PPTX
Introduction to Knowledge Engineering Part 1
PPTX
Major-Components-ofNKJNNKNKNKNKronment.pptx
PPTX
Supervised vs unsupervised machine learning algorithms
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PPTX
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
Miokarditis (Inflamasi pada Otot Jantung)
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
Introduction-to-Cloud-ComputingFinal.pptx
CEE 2 REPORT G7.pptxbdbshjdgsgjgsjfiuhsd
Moving the Public Sector (Government) to a Digital Adoption
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
1_Introduction to advance data techniques.pptx
Clinical guidelines as a resource for EBP(1).pdf
Introduction to Business Data Analytics.
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
Quality review (1)_presentation of this 21
Global journeys: estimating international migration
Introduction to Knowledge Engineering Part 1
Major-Components-ofNKJNNKNKNKNKronment.pptx
Supervised vs unsupervised machine learning algorithms
Data_Analytics_and_PowerBI_Presentation.pptx
The THESIS FINAL-DEFENSE-PRESENTATION.pptx

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