150 likes | 342 Views
Binary Heap. Binary tree of height, h, is complete iff it is empty or its left subtree is complete of height h-1 and its right subtree is completely full of height h-2 or its left subtree is completely full of height h-1 and its right subtree is complete of height h-1. . B
E N D
1. Binary Heap A special kind of binary tree. It has two properties that are not generally true for other trees:
Completeness
The tree is complete, which means that nodes are added from top to bottom, left to right, without leaving any spaces. A binary tree is completely full if it is of height, h, and has 2h+1-1 nodes.
Heapness
The item in the tree with the highest priority is at the top of the tree, and the same is true for every subtree.
2. Binary Heap Binary tree of height, h, is complete iff
it is empty
or
its left subtree is complete of height h-1 and its right subtree is completely full of height h-2
or
its left subtree is completely full of height h-1 and its right subtree is complete of
height h-1.
3. Binary Heap In simple terms:
A heap is a binary tree in which every parent is greater than its child(ren).
A Reverse Heap is one in which the rule is “every parent is less than the child(ren)”.
4. Binary Heap To build a heap, data is placed in the tree as it arrives.
Algorithm:
add a new node at the next leaf position
use this new node as the current position
While new data is greater than that in the parent of the current node:
? move the parent down to the current node
? make the parent (now vacant) the current node
? Place data in current node
5. Binary Heap New nodes are always added on the deepest level
in an orderly way.
The tree never becomes unbalanced.
There is no particular relationship among the data items
in the nodes on any given level, even the ones that have
the same parent
A heap is not a sorted structure. Can be regarded as
partially ordered.
A given set of data can be formed into many different
heaps (depends on the order in which the data arrives.)
6. Binary Heap Example:
Data arrives to be heaped in the order:
54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12,
31
7. Binary Heap 54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31
8. Binary Heap 54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31
9. Binary Heap 54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31
10. Binary Heap To delete an element from the heap:
Algorithm:
If node is the last “logical node” in the tree, simply delete it
Else:
? Replace the node with the last “logical node” in the tree
? Delete the last logical node from the tree
? Re-heapify
11. Binary Heap
12. Binary Heap
13. Binary Heap
14. Binary Heap