Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。今のままだと回答しようとした方は何時バグるのかを考えるところから始めないといけないので、ちょっと大変です。14:05申し訳ございません。「質問:私の代わりに実装してほしい」→「回答:これで動きます」だと根本的な解決にならないことがままあるからです。それではコメントには1~7まで手順が書かれていますが、1から分からないということでしょうか。15:32すみません。票1以下の順番で理解していくのは如何でしょうか。アルゴリズムを理解するプログラムのことは一度忘れて、ダイクストラ法が何をしているアルゴリズムなのか、具体的なグラフに対してダイクストラ法を手で実行してみることで理解してみましょう。多少手間ですが、1ステップごとに状態がどう変化していくのかをノートに書いていき、ダイクストラ法の感覚を理解してください。「例示は理解の試金石」です。プログラムで表現するプログラムでダイクストラ法をどのように表現するのか確認してみましょう。「グラフ」をJavaのどのようなデータ構造で表現していて、1~7までの手順をどのようなコードで書けそうでしょうか。処理の都合上それぞれの頂点には座標の情報もついていますが、ダイクストラ法にとって本質的なのは頂点番号です。辺の方は、頂点番号ふたつで辺の開始点と終了点を指定し、更に辺の重みを指定しています。続いて1から順番に、どうやったらプログラムとして書けるか考えていきます。中でどれが始点か覚えておくという処理です。ダイクストラ法では始点は最初から決まってるものなので「決定」というより元々の入力を表現すれば良いです。今回頂点には頂点番号がつけられているので、頂点番号だけ覚えておくようにしてみます。番の頂点を始点としたことにしてみましょう。0ここで一旦実行してみて、エラーが無いことを確認します。無ければ次に進みます。表す変数を用意し、始点以外を未定義(または無限大)で初期化しておく」ということをします。どのように実装すれば良いでしょう。頂点番号から距離が分かる辞書があれば良さそうです。ように扱えます)}ここで一旦実行してみて、エラーが無いことを確認します。無ければ次に進みます。3から最後までここに書いてしまうと回答が長くなりすぎてしまうのでここまでにして、この先も同じように手順をソースコードとして表現していき、エラーが出ないか確認してみましょう。「確定していないノード」をどうやって表現するかがポイントです。載っている疑似コードや、検索したら見つかるソースコードがヒントになるでしょう。個別によく分からない箇所があれば、問題を細かく分割して新しい質問として投稿してみてください。テストするダイクストラ法が実装できたら、自分が思っているものが実装できたかどうかテストしてみましょう。他の入力例ではバグが判明するかもしれません。いくつかの入力例を用意し、上手く動いているか確認してみましょう。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。