computer science: an overview tenth...
TRANSCRIPT
![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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/24.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/25.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/26.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/29.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/30.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/31.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/32.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/33.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/34.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/35.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/36.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/37.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/38.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/39.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/40.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/41.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/42.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/43.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/44.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/45.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/46.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/47.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/48.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/49.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/50.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/51.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/52.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/53.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/54.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/55.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/56.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/57.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/58.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/59.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/60.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/61.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/62.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/63.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/64.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/65.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/66.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/67.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/68.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/69.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/70.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/71.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/72.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/73.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042122/5e9cfc8c7cac4561841ac8cb/html5/thumbnails/74.jpg)
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
– …