Tag: 二进制堆

如何在二进制堆实现的优先级队列中保留相同优先级元素的顺序?

我创建了一个二进制堆,它代表一个优先级队列。 它只是经典的众所周知的算法。 此堆计划不同事件的时间顺序(排序键是时间)。 它支持2种操作:插入和删除。 堆的每个节点的密钥大于或等于其每个子节点。 但是,使用相同的键添加事件不会保留它们的添加顺序,因为每次调用Remove或Insert之后,堆启动和堆降过程都会破坏顺序。 我的问题是:在经典算法中应该改变什么来保持具有相同优先级的节点的顺序?