Чтобы получить родителя узла в массиве сортировки кучи, вычисление должно быть (index - 1) / 2.
Однако предположим, что каждый узел занимает 4 пробела в массиве.Чтобы получить доступ к записи / узлу, я должен получить доступ к первой позиции четырех из этой записи.Итак, вот пример:
Если родитель начинается с позиции 4, левый ребенок начинается с позиции 12, а правый ребенок начинается с позиции 16. Уравнение для получения левого ребенка будет 2*position + 4
, а уравнениеполучить правильного ребенка было бы 2*position + 8
.
Каково было бы уравнение, чтобы получить родителя, хотя?Мне нужно одно уравнение, чтобы получить родителя для левого или правого ребенка, точно так же, как index-1/2
.Это будет возможно?Если мне понадобятся два отдельных уравнения, это не сработает, поскольку я не знаю, является ли запись левым или правым потомком.
Спасибо,