Левый ребенок в 2i + 1, правый ребенок в 2 (i + 1) = 2i + 2.
Вы можете доказать, что это правильно, вызвав свои индексы, основанные на одном, j,определяя i = j - 1 и наблюдая, что
j = i + 1
left + 1 = 2j = 2(i+1) = 2i+2
right + 1 = 2j+1 = 2(i+1) + 1
так
left = 2i+1
right = 2(i+1)
(Вы также можете избежать некоторых проблем, перераспределив один элемент.)