【发布时间】:2010-10-20 11:10:12
【问题描述】:
对于我的 CS 课程,我需要在 Java 中实现 Prim 算法,但我遇到了优先队列步骤的问题。我有优先队列方面的经验,并且了解它们通常可以正常工作,但我在执行特定步骤时遇到了问题。
Prim(G,w,r)
For each u in V[G]
do key[u] ← ∞
π[u] ← NIL
key[r] ← 0
Q ← V[G]
While Q ≠ Ø
do u ← EXTRACT-MIN(Q)
for each v in Adj[u]
if v is in Q and w(u,v) < key[v]
then π[v] ← u
key[v] ← w(u,v)
我创建了一个 Node 类,其中包含键值(我假设它是连接到节点的最轻的边缘)和父节点。我的问题是我不明白将节点添加到优先级队列中。当父节点设置为 NIL 并将键设置为 ∞ 时,将所有节点添加到优先级队列对我来说没有意义。
【问题讨论】:
标签: java algorithm priority-queue prims-algorithm