Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 14

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.
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.
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)”.
Binary Heap
To build a heap, data is placed in the tree as it arrives.

Algorithm:

1. add a new node at the next leaf position


2. use this new node as the current position
3. 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
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.)
Binary Heap
Example:

Data arrives to be heaped in the order:


54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12,
31
Binary Heap
54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31

54 54 87 87

87 54 54 27

87 87 87

54 27 67 27 67 27

67 54 54 19
Binary Heap
54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31

87 87

67 27 67 27

54 19 19 31
54
Binary Heap
54, 87, 27, 67, 19, 31, 29, 18, 32, 56, 7, 12, 31

87
87

67 31 67 31

54 19 27 29
54 19 27 29

29 18

etc…
Binary Heap
To delete an element from the heap:

Algorithm:
If node is a leaf, delete it
Else if node has a right child, locate the
deepest leaf of right subtree and
replace node with that leaf. Then re-
heapify
Else replace node with the left child.
Binary Heap
Example: Deleting the root node, T
Binary Heap
Binary Heap
Binary Heap

You might also like