私のCSクラスでは、プリムのアルゴリズムをJavaで実装する必要があり、プライオリティキューのステップに問題があります。私は優先順位キューの経験があり、一般的に動作することを理解していますが、特定のステップに問題があります。プリムのアルゴリズムの実装
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に設定され、キーが∞に設定されているときは私には意味をなさない。