Вы находитесь на странице: 1из 31

Queues, Deques, and Priority Queues

Chapter 23

Slides by Steve Armstrong LeTourneau University Longview, TX 2007,Prentice Hall

Chapter Contents
Specifications for the ADT Queue Using a Queue to Simulate a Waiting Line
The Classes WaitLine and Customer

Using a Queue to Compute the capital Gain in a Sale of Stock


The Classes StockLedger and

StockPurchase

Java Class Library: the Interface Queue Specifications of the ADT Deque
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Chapter Contents
Using a Deque to Compute the Capital Gain in a Sale of Stock Specifications of the ADT Priority Queue Using a Priority Queue to Compute the Capital Gain in a Sale of Stock Specifications of the ADT Priority Queue Using a Priority Queue to Track Your Assignments
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications for the ADT Queue


Queue organizes entries according to order of entry
Exhibits first-in, first-out behavior Contrast to stack which is last-in, first-out

All additions are at the back of the queue Front of queue has items added first

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications for the ADT Queue

Fig. 23-1 Some everyday queues.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications for the ADT Queue


View interface for a queue of objects Note methods
enqueue dequeue getFront isEmpty clear

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications for the ADT Queue

Fig. 23-2 Queue of strings after (a) enqueue adds Jim; (b) Jess; (c) Jill; (d) Jane;
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications for the ADT Queue

Fig. 23-2 Queue of strings after (e) enqueue adds Joe; (f) dequeue retrieves, removes Jim; (g) enqueue adds Jerry; (h) dequeue retrieves, removes Jess.
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Using a Queue to Simulate a Waiting Line

Fig. 23-3 A line, or queue of people.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes WaitLine and Customer

Fig. 23-4 A CRC card for the class WaitLine.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes WaitLine and Customer

Fig. 23-5 A diagram of the classes WaitLine and Customer.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes WaitLine and Customer

Fig. 23-6 A simulated waiting line continued


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes WaitLine and Customer

Fig. 23-6 (ctd) A simulated waiting line.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

The Class Waitline


View source code Note methods
Constructor simulate displayResults reset

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Using a Queue to Compute Capital Gain in a Sale of Stock


Must sell stocks in same order they were purchased
Must use the difference in selling price and

purchase price to calculate capital gain

We use a queue to
Record investment transactions

chronologically Compute capital gain of the stock


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes StockLedger and StockPurchase

Fig. 23-7 A CRC card for the class StockLedger


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes StockLedger and StockPurchase

Fig. 23-8 A diagram of the class StockLedger and StockPurchase.


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes StockLedger and StockPurchase


View source code for class StockLedger
Note method
Constructor buy
sell

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Classes StockLedger and StockPurchase

Fig. 23-9 A queue of (a) individual shares of stock; (b) grouped shares.
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Java Class Library: The Interface Queue


Similar to our QueueInterface
Specifies more methods

Methods provided

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque


A Double ended queue Has operations that
Add, remove, or retrieve entries At both its front and back

Combines and expands the operations of queue and stack

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque

Fig. 23-10 An instance of a deque.

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque


A Java interface

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque

Fig. 23-11 A comparison of the operations that add, remove, and retrieve the entries of a stack s, queue q, and a deque d; (a) add;
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque

Fig. 23-11 A comparison of the operations that add, remove, and retrieve the entries of a stack s, queue q, and a deque d; (b) remove;
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Deque

Fig. 23-11 A comparison of the operations that add, remove, and retrieve the entries of a stack s, queue q, and a deque d; (c) retrieve.
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Using a Deque to Compute Capital Gain in Sale of Stock


Revise the class StockPurchase
Represents purchase of n shares at d dollars

per share Click to view Constructor is changed new methods Accessor methods for new fields added

Revise class StockLedger


Method ledger now an instance of a deque Method buy now creates instance of StockPurchase, places it at back of deque Method sell also altered
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Priority Queue


Organizes objects according to priorities
Contrast to regular queue in order of arrival

Priority queue example a hospital ER Priority can be specified by an integer


Must define whether high number is high

priority or Low number (say 0) is high priority

Other objects can specify priority


Object must have a compareTo method
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Specifications of the ADT Priority Queue


Note specification for ADT priority queue Methods specified
add remove peek getSize clear

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Using Priority Queue to Track Your Assignments


Organize class or work assignments by due dates
Early due date, higher priority

Figure 23-2 diagram of class Assignment

Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Using Priority Queue to Track Your Assignments


Fig. 23-13 A diagram of the class AssignmentLog

Note source code of class


Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X

Вам также может понравиться