出队优先队列

问题描述

从优先级队列中出队的元素遵循以下规则: 优先级[i]> =优先级[i-1] 但是,如果许多元素具有相同的优先级,则应以什么顺序将它们出队? 应该先将入队的元素先出队还是没关系? 我知道这很可能取决于实现和用法,但我正在寻找教科书优先级队列的答案。     

解决方法

        队列一定是FIFO,这就是它的本质。优先级队列稍稍更改了队列方面,因为它允许优先级较高的项优先于优先级较低的项通过,但是这不应更改队列的基本性质。 我见过一些自称是队列但不遵循FIFO规则的实现。我更喜欢使用不同的名称来更好地指定行为(例如优先包装)。 在队列(甚至是优先级队列)中,应以插入顺序相同的顺序提取优先级相同的项目。 换句话说,插入“ 0”(数字为优先)应导致处理为“ 1”。     ,        没有教科书的答案。缺少任何其他信息,可以将其作为直接FIFO(在相同优先级的项内)完成,或者未定义,或采取其他措施。 其他实现方式使入队者能够指定在出队以打破联系时可以使用的其他信息。