Download presentation

Presentation is loading. Please wait.

Published byKelly Manning Modified over 2 years ago

1
Lecture Queues

2
The name ‘Queue’ derives from objects that have to queue in order to be dealt with A queue is a First-In-First-Out(FIFO) or a Last-In-Last-Out(LILO) abstract data type

3
Applications of Queues Input and output buffers Managing batch jobs Management of a printer queue OS Scheduling

4
Operation On a Queue: Informal Abstract Definition Create: i.e. initialise an empty queue Enqueue: add data item to the back of the queue Dequeue: remove data item from the front of the queue – if queue is empty throw an exception IsEmpty: determine if queue is empty

5
class QueueInheritance extends StudentList { public QueueInheritance () { super(“Queue");} public void enqueue (String nameIn, int ageIn) { insertAtBack(nameIn, ageIn); } public ListNode dequeue() throws EmptyListException { return removeFromFront(); } public boolean isEmpty () { return super.isEmpty(); } public void printQueue() { printList(); } } //end of class QueueInheritance Linked List Queue: Inheritance Example

6
QueueInheritance theQueue = new QueueInheritance(); // Use the enqueue method theQueue.enqueue("Alice", 20 ); theQueue.printQueue(); theQueue.enqueue("John", 22); theQueue.printQueue(); theQueue.enqueue("Rita", 21); theQueue.printQueue(); theQueue.enqueue("Bob", 23); theQueue. printQueue(); Linked List Queue: Inheritance Example

7
24. // Use the dequeue method 25. ListNode removedObj = null; 26. try 27. { 28. while ( true ) 29. { 30. removedObj = theQueue.dequeue(); 31. System.out.println( removedObj.name.toString() + " dequeued" ); 32. theQueue.printQueue(); 33. } 34. } 35. catch ( EmptyListException e ) 36. { 37. System.err.println( "\n" + e.toString() ); 38 }

8
front and back are the indices Avoid overflow – more than what the array can hold front = back = 0 is the ‘empty condition’ & prevents underflow – remove item from empty queue [0] [1] [2] [3] [4] front = back = 0 q An empty queue Array Queue Implementation

9
To enqueue (insert) an item we need: q[back ++] = item; To dequeue (delete) an item we would need: item = q[ front ++]; Array Queue Implementation

10
After inserting A, B, C A B C [0] [1] [2] [3] [4] front = 0 back = 3 q Array Queue Implementation

11
After deleting A, B C [0] [1] [2] [3] [4] front = 2 back = 3 q Array Queue Implementation

12
After inserting D Any problems if we try to insert E? Overflow! Any remedies? Shift the entire queue after every dequeue operation, but very costly! C D [0] [1] [2] [3] [4] front = 2 back = 4 q

13
Is there a better solution? Circular Queue Allow array element to be ‘wrapped around’ So, now we can insert E But enqueue and dequeue operation must also be re-defined (see example) C DE [0] [1] [2] [3] [4] back = 0 front = 2 q

14
Now consider inserting F, G Array is full – any attempt to insert another item causes overflow Do you the problem? How do you test for empty queue? i.e. underflow back = = front is no longer the condition for testing underflow! FCDEFEDCG [0] [1] [2] [3] [4] back = 1 front = 2 back = front = 2

15
Any solutions? Allow queue to grow only as large as one less than it maximum size …. Queue becomes full when back points to the location immediately before front FCDE [0] [1] [2] [3] [4] back = 1 front = 2

16
Any other solution? Keep a count of the number of items in the queue

17
Re-defining enqueue and dequeue operation Enqueue q[back] = item; back = ( back + 1) % n; Dequeue item = q[front]; front = (front + 1) % n; where n is the size of the array and % is the remainder operator.

Similar presentations

Presentation is loading. Please wait....

OK

Chapter 24 Lists, Stacks, and Queues

Chapter 24 Lists, Stacks, and Queues

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on anti rigging voting system Ppt on credit policy sample Ppt on op amp circuits filter Ppt on switching network connection Ppt on mumbai as the financial capital of india Ppt on holographic technology Ppt on computer manners Ppt on peak load pricing lecture Ppt on led tv technology Ppt on telecommunication switching systems and networks