Structure of array based heap


Now that we know that a heap is a complete binary tree, it is easy to understand how it is implemented using an array. We can easily identify a pattern if we enumerate the nodes of a complete binary tree starting with 0 at the root. We can see that for any given node, the enumeration for its child nodes and parent can easily be calculated using simple maths.

Enumeration of nodes in a complete binary tree

For any given node at the given `index`:

  • Parent = `(index - 1) / 2`
  • Left child = `(2 * index) + 1`
  • Right child = `(2 * index) + 2`

Liking the course? Check our discounted plans to continue learning.