Queues Deques and Priority Queues Chapter 23 Slides































- Slides: 31
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 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 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 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 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) 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 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 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 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 → 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, 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 § 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 • 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 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 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. 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 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 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 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 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 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 • 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 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 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