End of Year Kristen Celebration Lunch!! Bei Gabby Wednesday, - - PowerPoint PPT Presentation

end of year
SMART_READER_LITE
LIVE PREVIEW

End of Year Kristen Celebration Lunch!! Bei Gabby Wednesday, - - PowerPoint PPT Presentation

Kelsey Sam Andreea Liam End of Year Kristen Celebration Lunch!! Bei Gabby Wednesday, April 24, 12:15 Tolshoi Samah Kendade 307 Cade Angela Marc Jessie Claudia 1 Stack vs. Queue Stack is Last In First Out (LIFO) 3 2 http:/


slide-1
SLIDE 1

End of Year Celebration Lunch!!

Wednesday, April 24, 12:15 Kendade 307 Andreea Kelsey Cade Marc Kristen Jessie Tolshoi Bei Samah Gabby Sam Liam Angela Claudia

Stack vs. Queue

Stack is Last In First Out (LIFO) Queue is First In First Out (FIFO)

1 2 3 1 2 3

http:/ /www.mathworks.com/matlabcentral/fx_files/24238/2/ queue_line_2.jpg http:/ /www.ifimages.com/photos/DL7xPn8R8CHcLkIzGfqnFFJck/ author-562/Stack-white-plates-background.jpg

Queue Examples

Deli counter Checkout line Ticket window Calls on hold Cards in a draw/ discard pile Printer queue Processes ready for CPU Data to be sent over network

1 2 3 Monday, April 22, 13

slide-2
SLIDE 2

Queue

Data structure that removes items in the same order they are added public class CallQueue { public void enqueue (Call item); / / Add a caller to end public Call front(); / / Get caller waiting the longest public Call dequeue(); / / Remove caller waiting the longest public boolean isEmpty(); / / Are any callers waiting? public int size(); / / How many callers are waiting? }

Queue Generic

Data structure that removes items in the same order they are added public interface Queue<T> { public void enqueue (T item); / / Add an item to end public T front(); / / Get item waiting the longest public T dequeue(); / / Remove item waiting the longest public boolean isEmpty(); / / Are any items waiting? public int size(); / / How many items are waiting? }

Managing Queue Data

We need to know: What is at the front of the queue Maintain elements in the order added Where the next thing added to the queue should go How should we organize the data? Array? ArrayList? Linked list?

4 5 6 Monday, April 22, 13

slide-3
SLIDE 3

Queue Implemented with a Linked List

head = null tail = null

Queue Implemented with a Linked List

enqueue (1); head tail

1

Queue Implemented with a Linked List

enqueue (1); enqueue (2); head tail

1 2

7 8 9 Monday, April 22, 13

slide-4
SLIDE 4

Queue Implemented with a Linked List

enqueue (1); enqueue (2); enqueue (3); head tail

1 3 2

Queue Implemented with a Linked List

enqueue (1); enqueue (2); enqueue (3); head tail

3 2

dequeue ();

Finding a Path in a Maze (Non-recursive)

Place the starting square in a queue while (the queue is not empty) { remove the front of the queue; for each neighbor of the removed square { if it has not been explored { if it is the destination { return true; } add it to the queue } } }

10 11 12 Monday, April 22, 13

slide-5
SLIDE 5

Queue Implemented with an Array

1 enqueue (1); enqueue (2); enqueue (3); 3 2

Queue Implemented with an Array

1 enqueue (1); enqueue (2); enqueue (3); 3 2 dequeue ();

Queue Implemented with an Array

enqueue (1); enqueue (2); enqueue (3); 3 2 dequeue (); dequeue is O(n)

13 14 15 Monday, April 22, 13

slide-6
SLIDE 6

Queue Implemented with an Array (Idea 2)

1 enqueue (1); enqueue (2); enqueue (3); 3 2 enqueue (4); 4 enqueue (5); 5 enqueue (6); 6 enqueue (7); 7 enqueue (8); 8 dequeue (); front

Queue Implemented with an Array (Idea 2)

enqueue (1); enqueue (2); enqueue (3); 3 2 enqueue (4); 4 enqueue (5); 5 enqueue (6); 6 enqueue (7); 7 enqueue (8); 8 dequeue (); dequeue (); front

Queue Implemented with an Array (Idea 2)

enqueue (1); enqueue (2); enqueue (3); 3 enqueue (4); 4 enqueue (5); 5 enqueue (6); 6 enqueue (7); 7 enqueue (8); 8 dequeue (); dequeue (); dequeue (); front

16 17 18 Monday, April 22, 13

slide-7
SLIDE 7

Queue Implemented with an Array (Idea 2)

enqueue (1); enqueue (2); enqueue (3); enqueue (4); 4 enqueue (5); 5 enqueue (6); 6 enqueue (7); 7 enqueue (8); 8 dequeue (); dequeue (); dequeue (); Problem: We can only ever put n elements in the queue! front

Queue Implemented with a CircularArray

1 enqueue (1); enqueue (2); enqueue (3); 3 2 dequeue (); first last numItems = 3

Queue Implemented with a CircularArray

enqueue (1); enqueue (2); enqueue (3); 3 2 dequeue (); first last numItems = 2 enqueue (4);

19 20 21 Monday, April 22, 13

slide-8
SLIDE 8

Queue Implemented with a CircularArray

enqueue (1); enqueue (2); enqueue (3); 3 dequeue (); first last numItems = 2 enqueue (4); 4 2 enqueue (5); enqueue (6); enqueue (7); dequeue (); enqueue (8);

Queue Implemented with a CircularArray

enqueue (1); enqueue (2); enqueue (3); 3 dequeue (); first last numItems = 6 enqueue (4); 4 enqueue (5); enqueue (6); enqueue (7); dequeue (); enqueue (8); 5 6 7 8

Queue Implemented with a CircularArray

enqueue (1); enqueue (2); enqueue (3); 3 dequeue (); first last numItems = 6 enqueue (4); 4 enqueue (5); enqueue (6); enqueue (7); dequeue (); enqueue (8); 5 6 7 8 enqueue (9);

22 23 24 Monday, April 22, 13

slide-9
SLIDE 9

Queue Implemented with a CircularArray

enqueue (1); enqueue (2); enqueue (3); 3 dequeue (); first last numItems = 7 enqueue (4); 4 enqueue (5); enqueue (6); enqueue (7); dequeue (); enqueue (8); 5 6 7 8 enqueue (9); 9

Data Members for Circular Array

int first; / / index of front of queue int last; / / index of last element of queue int numItems; / / how many in queue int capacity; / / how many queue can hold T[] values; / / array for data

Queue in Collection Hierarchy

<<interface>> List <<abstract>> AbstractList ArrayList LinkedList <<interface>> Collection Stack <<interface>> Iterable <<interface>> Queue <<abstract>> AbstractCollection

25 26 27 Monday, April 22, 13