Basic Concepts

35
Data Structures: A Pseudocode Approach with C, Second Edition 1 Chapter 1 Chapter 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 Concepts Basic Concepts

Transcript of Basic Concepts

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