Queues, Deques, and Priority Queues - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Queues, Deques, and Priority Queues

Description:

Using a Deque to Compute the Capital Gain in a Sale of Stock ... (b) Jess; (c) Jill; (d) Jane; (e) Joe; (f) dequeue retrieves, removes Jim; (g) ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 24
Provided by: steve1856
Category:
Tags: deques | jess | priority | queues

less

Transcript and Presenter's Notes

Title: Queues, Deques, and Priority Queues


1
Queues, Deques, and Priority Queues
  • Chapter 22

2
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
  • Specifications of the ADT Deque
  • 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

3
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

4
Specifications for the ADT Queue
Fig. 22-1 Some everyday queues.
5
Specifications for the ADT Queue
  • Interface for a queue of objects

public interface queueInterface / Task Adds
a new entry to the back of the queue. _at_param
newEntry an object to be added / public void
enqueue(Object newEntry) / Task Removes and
returns the front of the queue. _at_return either
the object at the front of the queue or null if
the queue was empty / public Object
dequeue() / Task Retrieves the front of the
queue. _at_return either the object at the front
of the queue or null if the queue is empty
/ public Object getFront() / Task
Determines whether the queue is empty. _at_return
true if the queue is empty / public boolean
isEmpty() / Task Removes all entries from
the queue. / public void clear() // end
queueInterface
6
Specifications for the ADT Queue
Fig. 22-2 Queue of strings after (a) enqueue adds
Jim (b) Jess (c) Jill (d) Jane (e) Joe (f)
dequeue retrieves, removes Jim (g) enqueue adds
Jerry (h) dequeue retrieves, removes Jess.
7
Using a Queue to Simulate a Waiting Line
Fig. 22-3 A line, or queue of people.
8
Classes WaitLine and Customer
Fig. 22-4 A CRC card for the class WaitLine.
9
Classes WaitLine and Customer
Fig. 22-5 A diagram of the classes WaitLine and
Customer.
10
Classes WaitLine and Customer
Fig. 22-6 A simulated waiting line continued ?
11
Classes WaitLine and Customer
Fig. 22-6 (ctd) A simulated waiting line.
12
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

13
Classes StockLedger and StockPurchase
Fig. 22-7 A CRC card for the class StockLedger
14
Classes StockLedger and StockPurchase
Fig. 22-8 A diagram of the class StockLedger and
StockPurchase.
15
Classes StockLedger and StockPurchase
Fig. 22-9 A queue of (a) individual shares of
stock (b) grouped shares.
16
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

17
Specifications of the ADT Deque
Fig. 22-10 An instance of a deque.
18
Specifications of the ADT Deque
  • A Java interface

public interface DequeInterface public void
addToFront(Object newEntry) public void
addToBack(Object newEntry) public Object
removeFront() public Object removeBack() publi
c Object getFront() public Object
getBack() public boolean isEmpty() public
void clear() // end DequeInterface
19
Specifications of the ADT Deque
Fig. 22-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 (b) remove
(c) retrieve.
20
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
  • Constructor is changed
  • 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

21
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

22
Specifications of the ADT Priority Queue
public interface PriorityQueueInterface public
void add(Comparable newEntry) public Comparable
remove() public Comparable get() public
boolean isEmpty() public int getSize() public
void clear() // end PriorityQueueInterface
23
Using Priority Queue to Compute Capital Gain in
Sale of Stock
  • Revise class StockPurchase
  • Include data field date
  • Method compareTo is made available
  • This field is the priority earliest date is
    highest priority
Write a Comment
User Comments (0)
About PowerShow.com