Я создал двоичную кучу, которая представляет очередь приоритетов. Это просто классический известный алгоритм. Эта куча описывает хронологическую последовательность различных событий (ключ сортировки - время).
Он поддерживает 2 операции: Вставка и удаление. Каждый ключ node кучи больше или равен каждому из его дочерних элементов. Однако добавление событий с одним и тем же ключом не сохраняет порядок, в который они были добавлены, потому что каждый раз после удаления или вставки были вызваны процедуры кучи и кучи, нарушающие порядок.
Мой вопрос: что следует изменить в классическом алгоритме, чтобы сохранить порядок узлов с одинаковым приоритетом?