Chapter 1
Basic ConceptsObjectives 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 notation1
Data Structures: A Pseudocode Approach with C, Second
Edition
PseudocodePseudocode is an English-like representation of the
algorithm logic. It Englishconsists of an extended version of the
basic algorithmic constructs: sequence, selection, and
iteration.
Purpose, Condition, and Return Statement Numbers Variables
Statment Constructs Algorithm Analysis
Algorithm Header
Data Structures: A Pseudocode Approach with C, Second
Edition
2
Data Structures: A Pseudocode Approach with C, Second
Edition
3
Data Structures: A Pseudocode Approach with C, Second
Edition
4
The Abstract Data TypeAn ADT consists of a data declaration
packaged together with the operations that are meaningful on the
data while embodying the structured principles of encapsulation and
data hiding. In this section we define the basic parts of an
ADT.
Atomic and Composite Data Data Type Data Structure Abstract Data
Type
Data Structures: A Pseudocode Approach with C, Second
Edition
5
Data Structures: A Pseudocode Approach with C, Second
Edition
6
Data StructureAggregation 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:
Data Structures: A Pseudocode Approach with C, Second
Edition
7
Data Structures: A Pseudocode Approach with C, Second
Edition
8
Abstract Data Type
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.
Data Structures: A Pseudocode Approach with C, Second
Edition
9
Model for an Abstract Data TypeIn this section we provide a
conceptual model for an Abstract Data Type (ADT). ADT Operation
passage like ADT Data Structure controlled entirely
Data Structures: A Pseudocode Approach with C, Second
Edition
10
Data Structures: A Pseudocode Approach with C, Second
Edition
11
ADT ImplementationsThere 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
Data Structures: A Pseudocode Approach with C, Second
Edition
12
Data Structures: A Pseudocode Approach with C, Second
Edition
13
Data Structures: A Pseudocode Approach with C, Second
Edition
14
Data Structures: A Pseudocode Approach with C, Second
Edition
15
Generic Code for ADTIn this section we discuss and provide
examples of two C tools that are required to implement an ADT.
Pointer to Void Pointer to Function
Data Structures: A Pseudocode Approach with C, Second
Edition
16
Data Structures: A Pseudocode Approach with C, Second
Edition
17
Data Structures: A Pseudocode Approach with C, Second
Edition
18
Data Structures: A Pseudocode Approach with C, Second
Edition
19
Data Structures: A Pseudocode Approach with C, Second
Edition
20
(Continued)
Data Structures: A Pseudocode Approach with C, Second
Edition
21
Data Structures: A Pseudocode Approach with C, Second
Edition
22
Data Structures: A Pseudocode Approach with C, Second
Edition
23
Data Structures: A Pseudocode Approach with C, Second
Edition
24
Data Structures: A Pseudocode Approach with C, Second
Edition
25
(Continued)
Data Structures: A Pseudocode Approach with C, Second
Edition
26
Data Structures: A Pseudocode Approach with C, Second
Edition
27
Data Structures: A Pseudocode Approach with C, Second
Edition
28
Data Structures: A Pseudocode Approach with C, Second
Edition
29
Data Structures: A Pseudocode Approach with C, Second
Edition
30
Data Structures: A Pseudocode Approach with C, Second
Edition
31
Data Structures: A Pseudocode Approach with C, Second
Edition
32
Data Structures: A Pseudocode Approach with C, Second
Edition
33
Data Structures: A Pseudocode Approach with C, Second
Edition
34
Algorithm EfficiencyTo design and implement algorithms,
programmers must have a basic understanding of what constitutes
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.
Data Structures: A Pseudocode Approach with C, Second
Edition
35