1
COMP 250
Lecture 9
queue ADT
- Sept. 27/28, 2017
queue ADT Sept. 27/28, 2017 1 ADT (abstract data type) List - - PowerPoint PPT Presentation
COMP 250 Lecture 9 queue ADT Sept. 27/28, 2017 1 ADT (abstract data type) List add(i,e), remove(i), get(i), set(i), .. Stack push, pop(), .. Queue enqueue( e ), dequeue() 2 Queue dequeue (remove from enqueue front)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Requires shift
indices
16
Requires shift Requires shift
indices
17
indices requires expansion
18
19
Make bigger array and copy to it.
20
1 2 3 4 5 6 7 1 2 3
22
b c
1 2 3 enqueue( a enqueue( b ) dequeue() enqueue( c )
23
c d e
1 2 3
enqueue( a ) enqueue( b ) dequeue( ) enqueue( c ) enqueue( d ) enqueue( e ) dequeue()
24
enqueue( element ){ if (size < length) queue[ (tail + 1) % length] = element else …. // coming up size = size+1 } dequeue(){ // check if empty omitted element = queue[head] head = (head + 1) % length size = size-1 return element }
27
tail head head tail
head = 2 tail = 1 size = 4
28
tail head head tail
head = 2 tail = 1 size = 4 head = 0 tail = 3 size = 4
29
31
32
https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
33
34
https://docs.oracle.com/javase/7/docs/api/java/util/List.html
35
36
37
38