Professional Documents
Culture Documents
CH 03 A Bag ImplementationThatLinksData
CH 03 A Bag ImplementationThatLinksData
CH 03 A Bag ImplementationThatLinksData
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
What Is an Iterator?
• An object that traverses a collection of
data
• During iteration, each data item is
considered once
− Possible to modify item as accessed
• Should implement as a distinct class that
interacts with the ADT
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Problems with Array
Implementation
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Analogy
• Empty classroom
• Numbered desks stored in hallway
− Number on back of desk is the “address”
• Number on desktop references another
desk in chain of desks
• Desks are linked by the numbers
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Analogy
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Forming a Chain
by Adding to Its Beginning
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Forming a Chain
by Adding to Its Beginning
FIGURE 3-3 Two linked desks, with the newest desk first
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Forming a Chain
by Adding to Its Beginning
FIGURE 3-4 Three linked desks, with the newest desk first.
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Forming a Chain
by Adding to Its Beginning
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
The Private Class Node
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
The Private Class Node
FIGURE 3-5 Two linked nodes that each reference object data
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
An Outline of
the Class LinkedBag
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
An Outline of
the Class LinkedBag
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Beginning a Chain of Nodes
FIGURE 3-6 (a) An empty chain and a new node; (b) after adding
a new node to a chain that was empty
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Beginning a Chain of Nodes
FIGURE 3-7 A chain of nodes (a) just prior to adding a node at the
beginning; (b) just after adding a node at the beginning
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Beginning a Chain of Nodes
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Method toArray
LISTING 3-3 A sample program that tests some methods in the class
LinkedBag
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Test Program
LISTING 3-3 A sample program that tests some methods in the class
LinkedBag
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Test Program
LISTING 3-3 A sample program that tests some methods in the class
LinkedBag
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Method getFrequencyOf
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Method contains
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Removing an Item
from a Linked Chain
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Removing an Item
from a Linked Chain
Case 1
1.Locate first desk by asking instructor for
its address.
2.Give address written on the first desk to
instructor. This is address of second desk
in chain.
3.Return first desk to hallway.
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Removing an Item
from a Linked Chain
Case 2
1.Move the student in the first desk to your
former desk.
2.Remove the first desk using the steps
described for Case 1.
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Removing an Item
from a Linked Chain
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Method remove
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Method clear
As in previous implementation,
uses isEmpty and remove
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Class Node That
Has Set and Get Methods
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
A Class within A Package
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
A Class within A Package
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
When Node Is
in Same Package
This occurrence of T
is optional
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
Cons of Using a Chain
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.
End
Chapter 3
© 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved.