【发布时间】:2016-09-25 23:46:46
【问题描述】:
我不明白这个问题....
请描述如何使用优先级队列来实现队列。
我是否简单地将优先级指定为进入时间?并且由于队列是先进先出的,我会降低优先级,所以最早的时间排在第一位?
【问题讨论】:
-
我看过这个...
标签: queue priority-queue
我不明白这个问题....
请描述如何使用优先级队列来实现队列。
我是否简单地将优先级指定为进入时间?并且由于队列是先进先出的,我会降低优先级,所以最早的时间排在第一位?
【问题讨论】:
标签: queue priority-queue
使用时间作为优先键是一种方法。不过要小心,使用一个不会在外部改变的时间。在夏令时切换期间将时钟拨回一小时时,您不希望使用当地时间。
您还可以从 0 开始一个整数计数器,并随着添加到队列中的每个项目递增它。
理论上,您可以给每个项目同等的优先级,但在实践中,这可能最终会像堆栈一样。这取决于您的优先级队列实现如何处理相等的项目。例如,如果实现是二叉堆,它可以插入相等的项作为新的最小项。所以你最终会得到 LIFO。
【讨论】: