Presented By: Guided By:
DEVKARAN Ms. FARHAT ANJUM
(BCA II,2015) HOD, Computer Science1
2
Chapter 1Chapter 1
Objectives
• Use pseudocode in the development of algorithms
• Understand the need for Abstract Data Type (ADT)
• Understand the implementation of ADTs
• Use void pointers and pointer to functions
• Understand the role of Big-O notation
Basic ConceptsBasic Concepts
3
Pseudocode
Pseudocode is an English-like representation of the algorithm logic. ItPseudocode is an English-like representation of the algorithm logic. It
consists of an extended version of the basic algorithmic constructs:consists of an extended version of the basic algorithmic constructs:
sequence, selection, and iterationsequence, selection, and iteration..
• Algorithm Header
• Purpose, Condition, and Return
• Statement Numbers
• Variables
• Statment Constructs
• Algorithm Analysis
4
5
6
The Abstract Data Type
An ADT consists of a data declaration packagedAn ADT consists of a data declaration packaged
together with the operations that are meaningfultogether with the operations that are meaningful
on the data while embodying the structuredon the data while embodying the structured
principles of encapsulation and data hiding. In this sectionprinciples of encapsulation and data hiding. In this section
we define the basic parts of an ADT.we define the basic parts of an ADT.
•Atomic and Composite Data
•Data Type
•Data Structure
•Abstract Data Type
7
8
Data Structure
Aggregation of atomic and composite data into a set with defined
relationships. Structure refers to a set of rules that hold the data
together.
• A combination of elements in which each is either a data type or another
data structure.
• A set of associations of relationship involving combined elements.
Example:
9
 ADT users are NOT concerned with how the task is done but rather what it
can do.
 An abstract data type is a data declaration packaged together with the
operations that are meaningful for the data type.
 We encapsulate the data and the operations on the data, and then hide
them from the user.
 All references to and manipulation of the data in a data structure are
handled through defined interfaces to the structure.
10
11
Model for an Abstract Data Type
In this section we provide a conceptual
model for an Abstract Data Type (ADT).
• ADT Operation – passage like
• ADT Data Structure – controlled
entirely
12
13
ADT Implementations
There are two basic structures we can use to
implement an ADT list: arrays and linked lists.
In this section we discuss the basic
linked-list implementation.
• Array Implementation
• Linked List Implemenation
14
15
16
17
Generic Code for ADT
In this section we discuss and provide examples
of two C tools that are required to implement
an ADT.
• Pointer to Void
• Pointer to Function
18
19
20
21
22
(Continued)
23
24
25
26
27
(Continued)
28
29
30
31
32
33
34
35
36
Algorithm Efficiency
To design and implement algorithms, programmersTo design and implement algorithms, programmers
must have a basic understanding of what constitutesmust have a basic understanding of what constitutes
good, efficient algorithms.good, efficient algorithms.
Linear Loops
-Efficiency is a function of the number of intstructions.
- Loop update either adds or subtracts.
• Logarithmic Loops
-The controlling variable is either multiplied or divided in each iteration.
- The number of iteration is a function of the multiplier or divisor.
• Nested Loops
- The number of iterations is the total number which is the product of the number of
iterations in the inner loop and number of iterations in the outer loop.
• Big-O Notation
-Not concerned with exact measurement of efficiency but with the magnitude.
- A dominant factor determines the magnitute.
37

Ds new

  • 1.
    Presented By: GuidedBy: DEVKARAN Ms. FARHAT ANJUM (BCA II,2015) HOD, Computer Science1
  • 2.
    2 Chapter 1Chapter 1 Objectives •Use pseudocode in the development of algorithms • Understand the need for Abstract Data Type (ADT) • Understand the implementation of ADTs • Use void pointers and pointer to functions • Understand the role of Big-O notation Basic ConceptsBasic Concepts
  • 3.
    3 Pseudocode Pseudocode is anEnglish-like representation of the algorithm logic. ItPseudocode is an English-like representation of the algorithm logic. It consists of an extended version of the basic algorithmic constructs:consists of an extended version of the basic algorithmic constructs: sequence, selection, and iterationsequence, selection, and iteration.. • Algorithm Header • Purpose, Condition, and Return • Statement Numbers • Variables • Statment Constructs • Algorithm Analysis
  • 4.
  • 5.
  • 6.
    6 The Abstract DataType An ADT consists of a data declaration packagedAn ADT consists of a data declaration packaged together with the operations that are meaningfultogether with the operations that are meaningful on the data while embodying the structuredon the data while embodying the structured principles of encapsulation and data hiding. In this sectionprinciples of encapsulation and data hiding. In this section we define the basic parts of an ADT.we define the basic parts of an ADT. •Atomic and Composite Data •Data Type •Data Structure •Abstract Data Type
  • 7.
  • 8.
    8 Data Structure Aggregation ofatomic and composite data into a set with defined relationships. Structure refers to a set of rules that hold the data together. • A combination of elements in which each is either a data type or another data structure. • A set of associations of relationship involving combined elements. Example:
  • 9.
  • 10.
     ADT usersare NOT concerned with how the task is done but rather what it can do.  An abstract data type is a data declaration packaged together with the operations that are meaningful for the data type.  We encapsulate the data and the operations on the data, and then hide them from the user.  All references to and manipulation of the data in a data structure are handled through defined interfaces to the structure. 10
  • 11.
    11 Model for anAbstract Data Type In this section we provide a conceptual model for an Abstract Data Type (ADT). • ADT Operation – passage like • ADT Data Structure – controlled entirely
  • 12.
  • 13.
    13 ADT Implementations There aretwo basic structures we can use to implement an ADT list: arrays and linked lists. In this section we discuss the basic linked-list implementation. • Array Implementation • Linked List Implemenation
  • 14.
  • 15.
  • 16.
  • 17.
    17 Generic Code forADT In this section we discuss and provide examples of two C tools that are required to implement an ADT. • Pointer to Void • Pointer to Function
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    36 Algorithm Efficiency To designand implement algorithms, programmersTo design and implement algorithms, programmers must have a basic understanding of what constitutesmust have a basic understanding of what constitutes good, efficient algorithms.good, efficient algorithms. Linear Loops -Efficiency is a function of the number of intstructions. - Loop update either adds or subtracts. • Logarithmic Loops -The controlling variable is either multiplied or divided in each iteration. - The number of iteration is a function of the multiplier or divisor. • Nested Loops - The number of iterations is the total number which is the product of the number of iterations in the inner loop and number of iterations in the outer loop. • Big-O Notation -Not concerned with exact measurement of efficiency but with the magnitude. - A dominant factor determines the magnitute.
  • 37.