Priority queue
Binary heap
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 1
Priority queue Binary heap March 06, 2019 Cinda Heeren / Will - - PowerPoint PPT Presentation
Priority queue Binary heap March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 1 REMINDER Section 201 midterm is in WOOD 2 19:00 21:00 March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 2 Priority queues?
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 1
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 2
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 3
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 4
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 5
G(9) D(100) G(9) C(3) F(7) E(5) A(4) B(6) insert D(100) removeMax
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 6
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 7
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 8
Heap has asymptotically same performance as AVL tree, but MUCH simpler to implement
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 9
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 10
complete binary trees incomplete binary trees
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 11
98 86 41 13 65 32 29 9 10 44 23 21 32 Heaps are not fully ordered – an in-order traversal would result in: 9, 13, 10, 86, 44, 65, 23, 98, 21, 32, 32, 41, 29
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 12
2 5 7 5 7 8 2 5 5 7 7 8
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 13
1 2 3 4 5 6 7 1 2 3 4 5 6 .. .
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 14
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 15
98 86 41 13 65 32 29 9 10 44 23 21 32 1 2 3 4 5 6 7 8 9 10 11 12 13 Heap Underlying array 98 86 41 13 65 32 29 9 10 1 2 3 4 5 6 7 44 23 21 32 10 11 12 13 8 9 value index
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 16
class MinHeap { private: int size; // number of stored elements int capacity; // maximum capacity of array int* arr; // array in dynamic memory public: ... }; MinHeap::MinHeap(int initcapacity) { size = 0; capacity = initcapacity; arr = new int[capacity]; }
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 17
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 18
98 86 41 13 65 32 29 9 10 44 23 21 32 98 86 41 13 65 32 29 9 10 1 2 3 4 5 6 7 44 23 21 32 10 11 12 13 8 9 value index 14 Insert 81
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 19
98 86 41 13 65 32 29 9 10 44 23 21 32 98 86 41 13 65 32 29 9 10 1 2 3 4 5 6 7 44 23 21 32 10 11 12 13 8 9 value index 81 14 Insert 81 81 81 29 parent: 14 2 = 7 81 29
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 20
98 86 41 13 65 32 81 9 10 44 23 21 32 98 86 41 13 65 32 81 9 10 1 2 3 4 5 6 7 44 23 21 32 10 11 12 13 8 9 value index 29 14 Insert 81 29 81 41 parent: 7 2 = 3 81 41 81 is less than 98 so finished
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 21
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 22
March 06, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 23