• 締切済み

ダイクストラ法 隣接リスト

ダイクストラ法をC言語で隣接配列で書くことができたんですけど隣接リストでの書き方がわかりません。 まずデータ構造をどのようにすればいいですか?

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

http://www.deqnotes.net/acmicpc/dijkstra/ ここの struct Node { // このノードから伸びるエッジの情報 vector<int> edges_to; // 各エッジの接続先のノード番号 vector<int> edges_cost; // 各エッジのコスト // ダイクストラ法のためのデータ bool done; // 確定ノードか否か int cost; // このノードへの現時点で判明している最小コスト }; という構造体の「vector<int>」をintのリスト構造にすればいいのでは?

silver_y
質問者

補足

回答ありがどうございます 隣接行列で dist[8][8] = {{0,1,4,I,I,I,I,I}, /*0~*/ {1,0,2,5,3,I,I,I}, /*1~*/ {4,2,0,4,8,I,I,I}, /*2~*/ {I,5,4,0,5,6,7,I}, /*3~*/ {I,3,8,5,0,3,1,I}, /*4~*/ {I,I,I,6,3,0,2,4}, /*5~*/ {I,I,I,7,1,2,0,3}, /*6~*/ {I,I,I,I,I,4,3,0}};   I = ∞ というデータを入力したいんですけど隣接リストにするにはどうやって入力すればいいのですか? 一つ一つmallocしないとだめですか?

関連するQ&A