Presentation is loading. Please wait.

Presentation is loading. Please wait.

Binary Heaps Text Read Weiss, §21.1 - 21.4 Binary Heap One-array representation of a tree Complete trees Building a Binary Heap Insert Delete.

Similar presentations


Presentation on theme: "Binary Heaps Text Read Weiss, §21.1 - 21.4 Binary Heap One-array representation of a tree Complete trees Building a Binary Heap Insert Delete."— Presentation transcript:

1 Binary Heaps Text Read Weiss, §21.1 - 21.4 Binary Heap One-array representation of a tree Complete trees Building a Binary Heap Insert Delete

2 Motivation Development of a data structure which allows efficient inserts and efficient deletes of the minimum value (minheap) or maximum value (maxheap)

3 Implementation One-array implementation of a binary tree Root of tree is at element 1 of the array If a node is at element i of the array, then its children are at elements 2*i and 2*i+1 If a node is at element i of the array, then its parent is at element floor(i/2)= └ i/2 ┘

4 Implementation 2945353121 4 12 5 26251415 i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 array __ 4 5 12 26 25 14 15 29 45 35 31 21 __ __ __ currentsize = 12

5 Implementatation Heap must be a complete tree all leaves are on the lowest two levels nodes are added on the lowest level, from left to right nodes are removed from the lowest level, from right to left

6 Inserting a Value 2945353121 4 12 5 26251415 i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 array __ 4 5 12 26 25 14 15 29 45 35 31 21 3 __ __ currentsize = 13 Insert 3 3 insert here to keep tree complete

7 Inserting a Value 2945353121 4 12 5 26251415 Insert 3 save new value in a temporary location: tmp  3

8 Inserting a Value 2945353121 4 12 5 26251415 Insert 3 14 tmp  3  copy 14 down because 14 > 3

9 Inserting a Value 2945353121 4 12 5 26251215 Insert 3 14 tmp  3 copy 12 down because 12 > 3

10 Inserting a Value 2945353121 4 4 5 26251215 Insert 3 14 tmp  3 copy 4 down because 4 > 3

11 Inserting a Value 2945353121 3 4 5 26251215 Insert 3 14 insert 3

12 Heap After Insert 2945353121 3 4 5 26251215 14

13 Deleting a Value (note new tree!) 2945353121 3 7 5 26251215 14 Delete 3

14 Deleting a Value 2945353121 7 5 26251215 14 Delete 3 3 save root value … tmp 

15 Deleting a Value 2945353121 7 5 26251215 14 Delete 3 3 tmp  X copy value of last node in complete tree into temporary location; decrement currentsize 14

16 Deleting a Value 2945353121 7 5 26251215 Delete 3 3 tmp  push down root … compare children select smaller 14

17 Deleting a Value 2945353121 5 7 26251215 Delete 3 3 tmp  push down root … copy smaller value into parent 14

18 Deleting a Value 2945353121 5 7 26251215 Delete 3 3 tmp  push down root … 14 compare children select smaller (25)

19 Deleting a Value 2945353121 5 7 14 26251215 Delete 3 3 tmp  push down root … copy 14 into parent because 14 < smaller child

20 Deleting a Value 2945353121 5 7 14 26251215 Delete 3 3 return


Download ppt "Binary Heaps Text Read Weiss, §21.1 - 21.4 Binary Heap One-array representation of a tree Complete trees Building a Binary Heap Insert Delete."

Similar presentations


Ads by Google