私はコーメンらの本から勉強してきましたが、彼らが提供したアルゴリズムについて少し混乱しています。Prim のアルゴリズムの概念がウィキペディアでどのように機能するかを理解しましたが、私の本で提供されているアルゴリズムを使用してその動作を模倣することはできません。
章の次のオンライン コピーを参照して ください。
アルゴは上記リンクの 13 ページに記載されており、図の例は前のページにあります。
ここで、最初のステップで、例のケースでアルゴリズムを使用します。
u <--- ExtractMin(Q) を介したノード A。次に、図のように、Adj[u] にノード b とノード h の 2 つのエントリがあります。
最初に v <---- ノード b を設定します。次に、v が Q に属しているかどうかを確認します。そうです。w(u,v) < key[v] かどうかを確認します。真実。したがって、PI[v] <--- u およびキー [v] <--- w(u, v) です。こんなに取れました。これは 12 ページの図の (b) に示されています。
しかし、アルゴリズムは「Adj[u]の各vに対して」と言います。
したがって、次のステップでは v <--- ノード h を設定する必要があります。次に、v が Q に属しているかどうかを確認します。そうです! w(u,v) < key[v] ですか? です!key[v] = 無限だから! しかし、この図では (c) の部分で別のステップが示されています。
あああああ!なんで?