Download presentation
Presentation is loading. Please wait.
Published byEmory Harvey Modified over 9 years ago
1
Problem of the Day To get into club, must get past bouncer Recorded correct responses of those before you Guard said five & response was four Guard said three & response was five Guard said twelve & response was six Guard said six & response was three Guard now says to you ten, what do you say?
2
Problem of the Day To get into club, must get past bouncer Recorded correct responses of those before you Guard said five & response was four Guard said three & response was five Guard said twelve & response was six Guard said six & response was three Guard now says to you ten, what do you say? Three!
3
CSC 212 – Data Structures
4
Priority Queue ADT Prioritizes Entry s using their keys For Entry s with equal priorities, order not specified Priority given to each value when added to PQ Normally, the priority not changeable while in PQ Access single Entry : one with the lowest priority Returns Entry using min() or removeMin() Location are imaginary – only smallest matters
5
Heaps Binary-tree based PQ implementation Still structured using parent-child relationship At most 2 children & 1 parent for each node in tree Heaps must also satisfy 2 additional properties Parent at least as important as its children Structure must form a complete binary tree 2 95 67
6
BinaryTree Picturing Linked BinaryTree B C A D BACD BinaryTree root size 4
7
Legal CompleteBinaryTree ADT which extends BinaryTree Add & remove methods defined plus those inherited For this ADT, trees must maintain specific shape Fill lowest level first, then can start new level below it 2 95 67 Illegal 2 95 7 6
8
CompleteBinaryTree ADT which extends BinaryTree Add & remove methods defined plus those inherited For this ADT, trees must maintain specific shape Fill lowest level first, then can start new level below it Lowest level must be filled in from left-to-right Legal 2 95 67 Illegal 2 95 67
9
What Is Purpose of a Heap? Root has critical Entry that we always access Entry at root always has smallest priority in Heap O(1) access time in min() without any real effort CompleteBinaryTree makes insert() easy Create leftmost child on lowest level When a level completes, start next one Useful when:
10
Upheap Insertion may violate heap-order property Upheap immediately after adding new Entry Goes from new node to restore heap’s order Compare priority of node & its parent If out of order, swap node's Entry s Continue upheaping from parent node Stop only when either case occurs: Found properly ordered node & parent Binary tree's root is reached
11
6 insert() in a Heap 2 5 79
12
6 1 2 5 79
13
6 1 Start your upheaping! 2 5 79
14
6 1 2 5 79
15
1 6 2 5 79
16
1 6 Upheaping Must Continue 2 5 79
17
1 6 2 5 79
18
2 6 Upheaping Sounds Icky 1 5 79
19
2 6 Check If We Should Continue 1 5 79
20
2 6 Stop At The Root 1 5 79
21
2 6 insert() Once Again 1 5 793
22
2 6 Upheaping Begins Anew 1 5 793
23
2 6 Maintain Heap Order Property 1 5 793
24
2 6 We Are Done With This Upheap! 1 5 793
25
Removing From a Heap removeMin() must kill Entry at heap’s root For a complete tree, must remove last node added How to reconcile these two different demands? Removed node's Entry moved to the root Then remove node from the complete tree Heap's order preserved by going down
26
Removing From a Heap removeMin() must kill Entry at heap’s root For a complete tree, must remove last node added How to reconcile these two different demands? Removed node's Entry moved to the root Then remove node from the complete tree Heap's order preserved by going down
27
Downheap Restores heap’s order during removeMin() Downheap work starts at root Swap with smallest child, if at least out-of-order Downheaping continues with old smallest child Stop at leaf or when node is legal
28
5 Before removeMin() is called 1 2 97
29
5 Move Last Entry Up To Root 1 2 97
30
5 1 2 97
31
5 9 2 7
32
5 Compare Parent W/Smaller Child 9 2 7
33
5 9 2 7
34
5 2 9 7
35
5 Continue Downheaping W/Node 2 9 7
36
5 2 9 7
37
5 Swap If Out Of Order 2 7 9
38
5 Check If We Should Continue 2 7 9
39
5 Stop When We Reach a Leaf 2 7 9
40
Implementation Excuses upheap & downheap travel height of tree O (log n ) running time for each of these Serves as bound for adding & removing from PQ What drawbacks does heap have? PriorityQueue can be faster using Sequence Only for specific mix of operations, however PriorityQueue using heaps are fastest overall
41
What Is Purpose of a Heap? Root has critical Entry that we always access Entry at root always has smallest priority in Heap O(1) access time in min() without any real effort CompleteBinaryTree makes insert() easy Create leftmost child on lowest level When a level completes, start next one Useful when: Will eventually add & remove everything Equally (large) numbers of adds & removes
42
Final Exam Schedule Lab Mastery Exam is: Tues., Dec. 14 th from 2:45PM – 3:45PM in OM 119 Final Exam is: Fri., Dec. 17 th from 8AM – 10AM in OM 200
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.