Stack / Queue ADT
Stack ADT Implementations Array resizing Queue ADT
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1
Stack / Queue ADT Stack ADT Implementations Array resizing Queue - - PowerPoint PPT Presentation
Stack / Queue ADT Stack ADT Implementations Array resizing Queue ADT January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1 Announcements PA1 GradeScope being configured, will be available soon January 27, 2020 Cinda Heeren / Andy
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 2
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 3
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 4
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 5
Must also have constructor(s) and destructor
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 6
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 7
34 a 52 27 18 34 52 27 18 a
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 8
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 9
1 2 3 4 5
6 1 7 8
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 10
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 11
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 12
Cinda Heeren / Andy Roth / Geoffrey Tien 13 January 27, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 14 January 27, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 15
January 27, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 16
1 3 2 4 5 6 7 1 2 3 4 5 6 7
January 27, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 17 January 27, 2020
Member attributes: int front; int arrlength; int* arr; int num;
Cinda Heeren / Andy Roth / Geoffrey Tien 18
Queue q;
front num
q.enqueue(6);
Insert item at (front + num) % queue.length, then increment num 1 1 2 3 4 5
January 27, 2020
6
Cinda Heeren / Andy Roth / Geoffrey Tien 19
Queue q;
front num
q.enqueue(6);
Insert item at (front + num) % queue.length, then increment num 6 5
q.enqueue(4); q.enqueue(7); q.enqueue(3); q.enqueue(8);
4 7 3 8
q.dequeue();
Remove item at front, then decrement num and make front = (front + 1) % queue.length 4 1
q.dequeue();
3 2 1 2 3 4 5
January 27, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 20
front num 2 Insert item at (front + num) % queue.length, then increment num 5 3 7 3 8 Remove item at front, then decrement num and make front = (front + 1) % queue.length 1 2 3 4 5
q.enqueue(9);
9 4
q.enqueue(5);
5 Need to check that the back of the queue does not overtake the front
January 27, 2020
Queue q; q.enqueue(6); q.enqueue(4); q.enqueue(7); q.enqueue(3); q.enqueue(8); q.dequeue(); q.dequeue();
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 21
12 5 76 33 2 41 ? ? ? ? ? ? ? ? ? ? ? ? front
Cinda Heeren / Andy Roth / Geoffrey Tien 22
January 27, 2020
Member attributes: Node* front; Node* back; int num;
Cinda Heeren / Andy Roth / Geoffrey Tien 23
Queue q;
front back
q.enqueue(6);
6
q.enqueue(4);
4
q.enqueue(7);
7
q.enqueue(3);
3
q.dequeue();
January 27, 2020
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 24
. . .
January 27, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 25