74
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter 8: Data Abstractions Presentation files modified by Farn Wang

Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Computer Science: An Overview

Tenth Edition

by

J. Glenn Brookshear

Chapter 8:

Data Abstractions

Presentation files modified by Farn Wang

Page 2: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-2

Chapter 8: Data Abstractions

• 8.1 Data Structure Fundamentals

• 8.2 Implementing Data Structures

• 8.3 A Short Case Study

• 8.4 Customized Data Types

• 8.5 Classes and Objects

• 8.6 Pointers in Machine Language

Page 3: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-3

Basic Data Structures

• Homogeneous array

• Heterogeneous array

• List

– Stack

– Queue

• Tree

Page 4: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-4

Lists, stacks, and queues

Page 5: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-5

Terminology for Lists

• List: A collection of data whose entries are

arranged sequentially

• Head: The beginning of the list

• Tail: The end of the list

Page 6: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-6

Terminology for Stacks

Stack

A list in which entries are removed and

inserted only at the head

• LIFO: Last-in-first-out

• Top: The head of list (stack)

• Bottom or base: The tail of list (stack)

• Pop: To remove the entry at the top

• Push: To insert an entry at the top

Page 7: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-7

Terminology for Queues

Queue:

A list in which entries are removed at the

head and are inserted at the tail

• FIFO: First-in-first-out

Page 8: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-8

Tree

- An example of an organization chart

Page 9: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-9

Terminology for a Tree

Tree:

A collection of data whose entries have a

hierarchical organization

• Node: An entry in a tree

• Root node: The node at the top

• Terminal or leaf node: A node at the

bottom

Page 10: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-10

Terminology for a Tree (continued)

• Parent: The node immediately above a specified node

• Child: A node immediately below a specified node

• Ancestor: Parent, parent of parent, etc.

• Descendent: Child, child of child, etc.

• Siblings: Nodes sharing a common parent

Page 11: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-11

Terminology for a Tree (continued)

• Binary tree: A tree in which every node

has at most two children

• Depth: The number of nodes in longest

path from root to leaf

Page 12: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-12

Tree terminology

Page 13: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-13

Additional Concepts

• Static Data Structures: Size and shape of

data structure does not change

• Dynamic Data Structures: Size and shape

of data structure can change

• Pointers:

– Used to locate data

– Used for constructing dynamic structures

Page 14: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-14

Dynamic linked lists

- example

Novel records arranged by title but linked

according to authorship

Page 15: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-15

Storing Arrays

• Homogeneous arrays

– Row-major order versus column major order

– Address polynomial

• Heterogeneous arrays

– Components can be stored one after the other in a contiguous block

– Components can be stored in separate locations identified by pointers

Page 16: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-16

The array of temperature readings

stored in memory starting at address x

Page 17: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-17

A two-dimensional array with four rows and

five columns stored in row major order

Page 18: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-18

Storing the heterogeneous array

Employee

Page 19: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-19

Storing Lists

• Contiguous list: List stored in a

homogeneous array

• Linked list: List in which each entries are

linked by pointers

– Head pointer: Pointer to first entry in list

– NIL pointer: A “non-pointer” value used to

indicate end of list

Page 20: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-20

Names stored in memory as a

contiguous list

Page 21: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-21

The structure of a linked list

Page 22: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-22

Deleting an entry from a linked list

Page 23: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-23

Inserting an entry into a linked list

Page 24: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-24

Storing Stacks and Queues

• Stacks usually stored as contiguous lists

• Queues usually stored as Circular

Queues

– Stored in a contiguous block in which the first

entry is considered to follow the last entry

– Prevents a queue from crawling out of its

allotted storage space

Page 25: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-25

A stack in memory

Page 26: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-26

A queue implementation with head and

tail pointers

Page 27: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-27

A circular queue containing the

letters P through V

Page 28: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-28

Storing Binary Trees

• Linked structure

– Each node = data cells + two child pointers

– Accessed via a pointer to root node

• Contiguous array structure

– A[1] = root node

– A[2],A[3] = children of A[1]

– A[4],A[5],A[6],A[7] = children of A[2] and A[3]

Page 29: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-29

The structure of a node in a binary

tree

Page 30: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-30

The conceptual and actual

organization of a binary tree using a

linked storage system

Page 31: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-31

A tree stored without pointers

Page 32: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-32

A sparse, unbalanced tree shown in its

conceptual form and as it would

be stored without pointers

Page 33: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-33

Manipulating Data Structures

• Ideally, a data structure should be manipulated solely by pre-defined procedures.

– Example: A stack typically needs at least push and pop procedures.

– The data structure along with these procedures constitutes a complete abstract tool.

Page 34: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-34

A procedure for printing a linked list

procedure print_list(list) {

c = list;

while (c is not NIL) do {

print the name pointed to by c;

let c by the next element to c in the list;

} }

Page 35: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-35

Case Study

Problem: Construct an abstract tool

consisting of a list of names in alphabetical

order along with the operations

search,

print, and

insert.

Page 36: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-36

The letters A through M arranged in

an ordered tree

Page 37: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-37

The binary search as

it would appear if the list were

implemented as a linked binary tree

Page 38: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-38

The successively smaller trees considered by

the procedure in Figure 8.18 when searching

for the letter J

Page 39: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-39

Printing a search tree in alphabetical

order

Page 40: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-40

A procedure for printing the data in a

binary tree

Page 41: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-41

Inserting the entry

M into the list B, E, G, H, J, K, N, P stored

as a tree

Page 42: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-42

A procedure for inserting a new entry in a

list stored as a binary tree

Page 43: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-43

User-defined Data Type

• A template for a heterogeneous structure

• Example:

define type EmployeeType to be

{char Name[25];

int Age;

real SkillRating;

}

Page 44: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-44

Abstract Data Type

• A user-defined data type with procedures for access and manipulation

• Example: define type StackType to be

{int StackEntries[20];

int top = 0;

procedure push(value){

StackEntries[top] ← value;

top = top + 1;

}

procedure pop . . .

}

Page 45: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-45

Class

• An abstract data type with extra features

– Characteristics can be inherited

– Contents can be encapsulated

– Constructor methods to initialize new objects

Page 46: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-46

A stack of integers implemented in

Java and C#

Page 47: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-47

Pointers in Machine Language

• Immediate addressing: Instruction

contains the data to be accessed

• Direct addressing: Instruction contains

the address of the data to be accessed

• Indirect addressing: Instruction contains

the location of the address of the data to

be accessed

Page 48: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-48

Our first attempt at expanding the machine

language in Appendix C to take advantage of

pointers

Page 49: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-49

Loading a register from a memory cell

that is located by means of a

pointer stored in a register

Page 50: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Indirect vs. direct addressing

2-50

PC

9C00

BR AB02

35AD

• Direct addressing

PC

AB02

BR AB02

35AD AB02

Page 51: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Indirect vs. direct addressing

2-51

PC

9C00

BR *AB02

35AD

• Indirect addressing

PC

35AD

BR AB02

35AD AB02

……..

35AD

Page 52: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-52

Beyond the basics

Tree applications

• heirarchical network topology of network

• cluster computing

• circuit signal propagations

Page 53: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-53

Beyond the basics

Trees

• depth log(# of nodes in the tree)

• efficient membership checking

• Questions ?

Can we maintain the log depths with

dynamic node insertion and deletion ?

Page 54: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-54

Beyond the basics

Trees

Maintaining the log depths with dynamic

node insertion and deletion ?

• trees implemented with pointers:

• solutions

– 2-3 trees

– red-black trees

– splay trees

Page 55: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-55

Beyond the basics

Graphs

• undirected

• directed

Page 56: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-56

Beyond the basics

Graph problems

• Find a path (with a cost ?) between

two nodes.

• Find a cycle in a graph.

• Find the biconnected components

• Check if a graph is planar.

• ……

Page 57: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8-57

Beyond the basics

DAG (directed acyclic graphs)

• Directed graphs without cycles

• Can be used for Boolean formula

presentation.

Page 58: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 58

Truth Table, DNF, and CNF

• Disjunctive normal form

(DNF)

F = (x1x2x3) (x1x2x3 )

(x1x2x3 )

• Conjunctive normal form

(CNF)

F = (x1 x2 x3) (x1 x2x3)

(x1 x2 x3) (x1x2x3)

(x1 x2 x3)

x1 x2 x3 F

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 0

1 1 1 1

Page 59: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 59

Binary Decision Tree (BDT)

- predecessor of BDD with redundancies

• Same size as truth tables

• Lots of redundancy: Out of 8 subtrees rooted at b2 only 3 are distinct!!!

• Merge isomorphic subtrees BDD

Page 60: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 60

Truth Table and Decision Tree

x1

x3

x2

x3 x3 x3

1 0

x2

1 1 0 0 0 0

x1 0 0 0 0 1 1 1 1

x2 0 0 1 1 0 0 1 1

x3 0 1 0 1 0 1 0 1

F 0 0 0 1 0 1 0 1 0 1

1 0 1 0

0 1 0 1 0 1 0 1

Page 61: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 61

Structure sharing in BDT

(a1b1a2b2)

(a1 b1 a2 b2)

(a1 b1 a2 b2)

(a1 b1 a2 b2)

function values

determined at

b1

Page 62: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 62

Binary Decision Diagram (BDD)

• BDD: A minimal canonical form

representation for Boolean formulas.

• Motivation:

– Too much space redundancy in traditional

representations

– BDD is more compact than truth tables,

conjunctive normal form, disjunctive normal

form, binary decision trees, etc.

– BDD has a canonical form

– BDD operations are efficient

minimum size

representation

(for a given var

ordering)

unique BDD for a

function

Page 63: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 63

BDD (Binary Decision Diagram)

minimal canonical form of Boolean functions

• minimal efficiency (space & computation)

– for a specific variable ordering

• Canonical form:

unique BDD for a function

(x y) z

x

z

y

0 1

0

0

0

1

1

1

0 0 1

Page 64: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 64

BDD function evluation

x

z

y

0 1

0

0

0

1 1

1

(x y) z x 1 y 0 z 0

0 x

0 y

1 z

x

z

y

0 1

0

0

0

1 1

1

Using path traversal to evaluate function

Page 65: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 65

BDD Reduction (I)

- from bottom up

x1

x3 x3

x2 x2

0 1 0 1

0

1

0

0

0

0

1 1

1 1

x1

x3 x3

x2 x2

0 1

0

1

0

0

0

0

1 1

1 1

at leaf level

Page 66: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 66

BDD Reduction (II)

- from bottom up

x1

x3

x2 x2

0 1

1

0

0

0

0

1

1 1

at level x3 x1

x3 x3

x2 x2

0 1

0

1

0

0

0

0

1 1

1 1

Page 67: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 67

BDD Reduction (III)

- from bottom up

x1

x3

x2

0 1

1

0

0

0

1

1

at level x2 x1

x3

x2 x2

0 1

1

0

0

0

0

1

1 1

Page 68: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 68

Relations for Logic Blocks:

Example

x1 x2 x3 y1 y2

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 0 1

1 0 0 0 0

1 0 1 0 1

1 1 0 1 1

1 1 1 1 1

x1

x2

x3

y1

y2

Page 69: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 69

Example (continued)

x1 x2 x3 y1 y2 F

0 0 0 0 0 1

0 0 1 0 1 1

0 1 0 0 1 1

0 1 1 0 1 1

1 0 0 0 0 1

1 0 1 0 1 1

1 1 0 1 1 1

1 1 1 1 1 1

0 other

x1

x2

x3

y1

y2

0 1

Page 70: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 70

Relations for FSMs: Example

Ins CS CSC NS NSC

0 A 00 B 10

0,1 A 00 A 00

0 B 10 B 10

1 B 10 A 00

0 C 01 B 10

1 C 01 A 00

C

B

A

0,1

0 1

0

1 0

Page 71: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 71

Example (continued)

Relation

= ia1a2b1b2

+ a1a2b1b2

+ ia1a2b1b2

+ ia1a2b1b2

+ ia1a2b1b2

+ ia1a2b1b2

i

a1

b1

a2

b2

1 0

Page 72: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 72

Efficient Operations on BDDs

• Apply – NOT, AND, OR, EXOR, etc.

• Quantification (existential, universal)

• Replace

• Compose

• Specialized operators

– Generalized cofactor (constrain, restrict)

– Compatible projection, etc.

Page 73: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 73

Components of BDDs and Their Use

• Nodes (represent functions; complexity)

• Terminal nodes (constant functions)

• Edges (relationship between functions)

• Paths (true and false var. assignments)

• Cuts (variable partitions and subsets)

Page 74: Computer Science: An Overview Tenth Editioncc.ee.ntu.edu.tw/~farn/courses/BCC/NTUEE/slides/ch08.pdf · Pointers in Machine Language •Immediate addressing: Instruction contains the

Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 74

Properties of BDDs

• Canonicity

• Compactness (with some exceptions)

• Representing a variety of discrete objects

– Boolean functions

– Compositional sets

– Encodings and labelings

• Facilitating symbolic methods

– Two-level minimization

– State traversal of FSMs

– …