0% found this document useful (0 votes)
108 views46 pages

Data Abstractions: Computer Science: An Overview Eleventh Edition

Uploaded by

Gokay Gulsoy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views46 pages

Data Abstractions: Computer Science: An Overview Eleventh Edition

Uploaded by

Gokay Gulsoy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Chapter 8:

Data Abstractions

Computer Science: An Overview


Eleventh Edition

by
J. Glenn Brookshear

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


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

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


Basic Data Structures

• Homogeneous array
• Heterogeneous array
• List
– Stack
– Queue
• Tree

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


Figure 8.1 Lists, stacks, and queues

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


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

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


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

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


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

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


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

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


Figure 8.2 An example of an
organization chart

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


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

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


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

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


Figure 8.3 Tree terminology

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


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

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


Figure 8.4 Novels arranged by title
but linked according to authorship

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


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

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


Figure 8.5 The array of temperature
readings stored in memory starting
at address x

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


Figure 8.6 A two-dimensional array with
four rows and five columns stored in row
major order

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


Figure 8.7 Storing the heterogeneous
array Employee

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


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

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


Figure 8.8 Names stored in memory
as a contiguous list

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


Figure 8.9 The structure of a linked
list

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


Figure 8.10 Deleting an entry from a
linked list

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


Figure 8.11 Inserting an entry into a
linked list

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


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

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


Figure 8.12 A stack in memory

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


Figure 8.13 A queue implementation with
head and tail pointers

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


Figure 8.14 A circular queue
containing the letters P through V

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


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]

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


Figure 8.15 The structure of a node
in a binary tree

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


Figure 8.16 The conceptual and
actual organization of a binary tree
using a linked storage system

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


Figure 8.17 A tree stored without
pointers

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


Figure 8.18 A sparse, unbalanced tree
shown in its conceptual form and as it
would be stored without pointers

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


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.

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


Figure 8.19 A procedure for printing
a linked list

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


Case Study

Problem: Construct an abstract tool consisting of a list of


names in alphabetical order along with the operations
search, print, and insert.

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


Figure 8.20 The letters A through M
arranged in an ordered tree

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


Figure 8.21 The binary search as
it would appear if the list were
implemented as a linked binary tree

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


Figure 8.22 The successively smaller trees
considered by the procedure in Figure
8.18 when searching for the letter J

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


Figure 8.23 Printing a search tree in
alphabetical order

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


Figure 8.24 A procedure for printing
the data in a binary tree

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


Figure 8.25 Inserting the entry
M into the list B, E, G, H, J, K, N, P stored
as a tree

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


Figure 8.26 A procedure for inserting a
new entry in a list stored as a binary tree

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


User-defined Data Type

• A template for a heterogeneous structure


• Example:
define type EmployeeType to be
{char Name[25];
int Age;
real SkillRating;
}

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


Abstract Data Type

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


• Example:
define type StackType to be
{int StackEntries[20];
int StackPointer = 0;
procedure push(value)
{StackEntries[StackPointer] ← value;
StackPointer ¬ StackPointer + 1;
}
procedure pop . . .
}

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


Class

• An abstract data type with extra features


– Characteristics can be inherited
– Contents can be encapsulated
– Constructor methods to initialize new objects

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


Figure 8.27 A stack of integers
implemented in Java and C#

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

You might also like