# a heap is stored in a plain array, filled level by level, left to right

 function parent(i): return (i - 1) // 2
 function left(i): return 2 * i + 1
 function right(i): return 2 * i + 2
 # no pointers needed -- index arithmetic finds every relative
