Насколько я знаю, кучи никогда не создаются для сохранения порядка (именно поэтому "сортировка кучи" отличается тем, что не является стабильной сортировкой).
Я понимаю, чтоВы спрашиваете, может ли небольшой алгоритмический трюк изменить это (это не старое, надежное, «временное» решение).Я не думаю, что это возможно.
Я бы предложил несколько вариантов этого:
сохранить то же самое "insert";
изменить «удалить», чтобы обеспечить определенный порядок для элементов с заданным приоритетом.
Для этого в heap-down вместо замены элементов вниздо тех пор, пока порядок не будет сохранен: поменяйте местами элемент, пока он не станет концом древовидности элементов одного и того же значения, всегда выбирая вправо, когда можете.
К сожалению, проблема в том, что выне знаю, куда вставка добавит элемент с заданным приоритетом: он может оказаться где угодно в дереве.Я полагаю, что изменить это было бы больше, чем просто изменить структуру.