我不清楚IndexMinPQ数据结构的用途。给出了一个实现IndexMinPQ.java。
尽管本书本身提供了简短的介绍,但不清楚。我不清楚为什么我们需要这种数据结构和其他操作?
优先级队列的堆实现问题在于,很难找到特定的节点。例如,假设您有一个包含100,000个项目的堆,并且您想降低值为732的节点的优先级。找到该节点的唯一方法是通过线性搜索堆。降低节点的优先级是O(log n)操作,但是查找节点是O(n)。
索引优先级队列维护查找结构,以便您可以在O(1)中找到该节点。
此功能在需要修改优先级队列中的节点的任何系统中都很重要。例如,一个作业计划程序,您经常需要在其中调整作业的优先级或取消作业。