В настоящее время я делаю max-heap. Когда я использую метод remove(), я понимаю, что поменяюсь местами с более крупными дочерними элементами. Что делать, если оба ребенка имеют одинаковый приоритет? например
Дело 1:
куча = [5,7,7,16,15]
если я уберу 5 и заменю его на 15, я буду просачиваться вправо (что неправильно), поэтому я буду просачиваться в левую сторону.
но используя ту же логику, если у меня есть
куча = [5,7,7,16,15,18]
и я стекаю влево, это уже не будет действительной кучей.
Что я могу сделать, чтобы убедиться, что у меня есть допустимая куча?