2012-05-15 44 views

回答

0

如果你看一下文档中的第一行,你会看到:

An unbounded priority queue based on a priority heap. 

不能使用优先级堆有效地找到一个元素的索引。它只知道第一个,当你弹出它然后重新计算新的第一个等。

2

PriorityQueue不支持索引。您可以自己将一个整数索引关联到每个项目。

+0

是的,看看代码:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14 /java/util/PriorityQueue.java#PriorityQueue – roottraveller

3

普林斯顿有一个索引优先级队列。

http://algs4.cs.princeton.edu/code/javadoc/IndexMinPQ.html

的核心思想是建立项目及其优先级队列位置之间的两个指数图。

当您更新优先队列时,还需要更新这两个索引图。

希望这能解决你的问题:-)

相关问题