Download presentation
Presentation is loading. Please wait.
1
ITEC200 Week06 Queues
2
www.ics.mq.edu.au/ppdp 2 Learning Objectives – Week06 Queues (Ch6) Students can Manage data using the queue Abstract Data Type and the methods provided in it’s Java implementation (offer, remove, poll, peek and element) Compare and contrast implementations of the Queue interface (single-linked list, double-linked list, circular array) and make augmentations to them Analyse and augment a simulation of a physical system that uses Queues and random number generators Recognise appropriate circumstances to implement queues for data management and simulation purposes
3
www.ics.mq.edu.au/ppdp 3 Queue Abstract Data Type Queue ADT is an organisation of data whereby insertion occurs at the tail and removal occurs at the head. Can visualize a queue as a line of customers waiting for service The next person to be served is the one who has waited the longest New elements are placed at the end of the line
4
www.ics.mq.edu.au/ppdp 4 Applications of Queues Operating systems use queues to sequence tasks waiting for a scarce resource –Printer queue –Tasks waiting for CPU Simulation of physical systems uses queues to simulate any ‘first-in first-out’ (FIFO) system –Supermarket checkouts –Tollbooths
5
www.ics.mq.edu.au/ppdp 5 Specification for a Queue Interface
6
www.ics.mq.edu.au/ppdp 6 Class LinkedList Implements the Queue Interface The Java 5.0 LinkedList class implements the Queue interface: Queue names = new LinkedList (); creates a new Queue reference, names, that stores references to String objects The actual object referenced by names is type LinkedList Because names is a type Queue reference, you can apply only the Queue methods to it.
7
www.ics.mq.edu.au/ppdp 7 Case Study: Maintaining a Queue of Customers Class MaintainQueue provides a GUI to perform operations on the queue Algorithms for GUI and for finding the position of a person in the queue are considered
8
www.ics.mq.edu.au/ppdp 8 Using a Double-Linked List to Implement the Queue Interface Insertion and removal from either end of a double- linked list is O(1) so either end can be the front (or rear) of the queue Java designers decided to make the head of the linked list the front of the queue and the tail the rear of the queue Limitation: LinkedList object is used as a queue, it may be possible to apply other LinkedList methods in addition to the ones required by the Queue interface
9
www.ics.mq.edu.au/ppdp 9 Using a Single-Linked List to Implement a Queue Can implement a queue using a single-linked list Class ListQueue contains a collection of Node objects
10
www.ics.mq.edu.au/ppdp 10 Implementing a Queue Using a Circular Array Time efficiency of using a single- or double-linked list to implement a queue is acceptable, however there are some space inefficiencies Implementing a Queue as a Circular Array overcomes space inefficiencies
11
www.ics.mq.edu.au/ppdp 11 Implementing a Queue Using a Circular Array (continued)
12
www.ics.mq.edu.au/ppdp 12 Comparing the Three Implementations All three implementations are comparable in terms of computation time Linked-list implementations require more storage because of the extra space required for the links –Each node for a single-linked list stores a total of two references –Each node for a double-linked list would store a total of three references A circular array that is filled to capacity would require half the storage of a single-linked list to store the same number of elements
13
www.ics.mq.edu.au/ppdp 13 Simulating Waiting Lines Using Queues Simulation is used to study the performance of a physical system by using a physical, mathematical, or computer model of the system Simulation allows designers of a new system to estimate the expected performance before building it Simulation can lead to changes in the design that will improve the expected performance of the new system Useful when the real system would be too expensive to build or too dangerous to experiment with after its construction
14
www.ics.mq.edu.au/ppdp 14 Case Study: Simulating a Strategy for Serving Airline Passengers
15
www.ics.mq.edu.au/ppdp 15 Simulate a Strategy for Serving Airline Passengers (continued)
16
www.ics.mq.edu.au/ppdp 16 Simulate a Strategy for Serving Airline Passengers (continued)
17
www.ics.mq.edu.au/ppdp 17 Simulating Waiting Lines Using Queues (continued)
18
www.ics.mq.edu.au/ppdp 18 Simulating Waiting Lines Using Queues (continued)
19
www.ics.mq.edu.au/ppdp 19 Simulating Waiting Lines Using Queues (continued)
20
www.ics.mq.edu.au/ppdp 20 Simulating Waiting Lines Using Queues (continued)
21
www.ics.mq.edu.au/ppdp 21 Simulating Waiting Lines Using Queues (continued)
22
www.ics.mq.edu.au/ppdp 22 Simulating Waiting Lines Using Queues (continued)
23
www.ics.mq.edu.au/ppdp 23 Where to from here… Work through Chapter 6 of the Koffman & Wolfgang Text Conceptual Questions and Practical Exercises Submit all preliminary work Be prompt for your online class
24
www.ics.mq.edu.au/ppdp 24 Acknowledgements These slides were based upon the Objects, Abstraction, Data Structures and Design using Java Version 5.0 Chapter 6 PowerPoint presentation by Elliot B. Koffman and Paul A. T. Wolfgang
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.