Queues Deques and Priority Queues Chapter 23 Slides

  • Slides: 31
Download presentation
Queues, Deques, and Priority Queues Chapter 23 Slides by Steve Armstrong Le. Tourneau University

Queues, Deques, and Priority Queues Chapter 23 Slides by Steve Armstrong Le. Tourneau University Longview, TX ã 2007, Prentice Hall

Chapter Contents • Specifications for the ADT Queue • Using a Queue to Simulate

Chapter Contents • Specifications for the ADT Queue • Using a Queue to Simulate a Waiting Line § The Classes Wait. Line and Customer • Using a Queue to Compute the capital Gain in a Sale of Stock § The Classes Stock. Ledger and Stock. Purchase • 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

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 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 1 • Queue organizes entries according to order of

Specifications for the ADT Queue 1 • 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

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 2 • View interface for a queue of objects

Specifications for the ADT Queue 2 • View interface for a queue of objects • Note methods § enqueue (item) § § add dequeue remove get. Front (returns item) is. Empty 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 4 Fig. 23 -2 Queue of strings after (a)

Specifications for the ADT Queue 4 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

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 5 Fig. 23 -3 A line,

Using a Queue to Simulate a Waiting Line 5 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 Wait. Line and Customer Fig. 23 -4 A CRC card for the class

Classes Wait. Line and Customer Fig. 23 -4 A CRC card for the class Wait. Line. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0 -13 -237045 -X

Classes Wait. Line and Customer 6 Fig. 23 -5 A diagram of the classes

Classes Wait. Line and Customer 6 Fig. 23 -5 A diagram of the classes Wait. Line and Customer. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0 -13 -237045 -X

Classes Wait. Line and Customer Fig. 23 -6 A simulated waiting line … continued

Classes Wait. Line 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 Wait. Line and Customer Fig. 23 -6 (ctd) A simulated waiting line. Carrano,

Classes Wait. Line 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

The Class Waitline • View source code • Note methods § Constructor § simulate § display. Results § 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 10 •

Using a Queue to Compute Capital Gain in a Sale of Stock 10 • 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 Stock. Ledger and Stock. Purchase 11 Fig. 23 -7 A CRC card for

Classes Stock. Ledger and Stock. Purchase 11 Fig. 23 -7 A CRC card for the class Stock. Ledger Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0 -13 -237045 -X

Classes Stock. Ledger and Stock. Purchase Fig. 23 -8 A diagram of the class

Classes Stock. Ledger and Stock. Purchase Fig. 23 -8 A diagram of the class Stock. Ledger and Stock. Purchase. Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0 -13 -237045 -X

Classes Stock. Ledger and Stock. Purchase 12 • View source code for class Stock.

Classes Stock. Ledger and Stock. Purchase 12 • View source code for class Stock. Ledger • 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 Stock. Ledger and Stock. Purchase Fig. 23 -9 A queue of (a) individual

Classes Stock. Ledger and Stock. Purchase 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 Queue. Interface § Specifies

Java Class Library: The Interface Queue • Similar to our Queue. Interface § 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 15 • A Double ended queue • Has operations

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

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

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

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

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

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 17 • Revise

Using a Deque to Compute Capital Gain in Sale of Stock 17 • Revise the class Stock. Purchase § 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 Stock. Ledger § Method ledger now an instance of a deque § Method buy now creates instance of Stock. Purchase, 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

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 compare. To 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 •

Specifications of the ADT Priority Queue • Note specification for ADT priority queue • Methods specified § add § remove //highest priority § peek //retrieves highest priority § get. Size § 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 19 • Organize class or work assignments

Using Priority Queue to Track Your Assignments 19 • 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

Using Priority Queue to Track Your Assignments • Fig. 23 -13 A diagram of the class Assignment. Log • 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