![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?e8efa67)
全経路検索について勉強中です。
「各ノードはポインタで繋がっている」という事は理解しましたが、それをどのように表せば良いのでしょう。
ダイクストラ法、深さ優先検索等の単語は見つかりましたが、どれを使用すれば良いのか…。
条件は、ノードの数は決まっておらず、つながり・出発,到着点は自由に決める事が出来ます。
例)1-2 1-4 2-4 2-3 3-5 4-5 開始,3 到着,5
距離は関係ありません。
今はリスト構造で、構造体(下のようにしています)は動的に確保し、
再帰で処理をするようにしていますが、上手くいかず不安になってきました。
struct data{
int x; /*ノード*/
struct data *next; /*次ノードへのつながり*/
};
よろしければ、何か些細な事でもヒントを下さると嬉しいです^^
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
投稿者です。
nimlのアカウント紛失…orz の為、こちらから失礼致します。
折角ご回答下さったのに、ポイント等付けれずに申し訳無いです。
No.1 Tacosan さん
プログラムにおいての表現、ですか。
その事を考えずに(思いつかず)、何を使おうかと焦っていました。
隣接リストで表現し、トラックバックなるものを使用して検索するのですね。
本なりネットを参考に頑張りますっ。
物事の考え方―何をすべきかを、最初に考えなければならないですね。
考える為には、把握しないと駄目なのかな。
何となく、思考の弱点がわかったような気がしました。
No.2 JaritenCat さん
ノード管理のリストと接続先管理のリストを、ですか。
Tacosanさんにアドバイス頂いた隣接リストをネットで調べ、現在下記のようになりましたが…間違いのようですね;
書いて下さったプログラムを研究して、考え直してみます。
struct data{
int x; /*ノード*/
struct connect *list; /*つながり先のリスト*/
};
struct connect{
int y; /*つながり先の頂点*/
struct connect *next; /*次リスト*/
};
お二人のアドバイスで、すべき事が見えた気がします。
ありがとうございました^^
No.2
- 回答日時:
ノード数が不定ですのでノードのリストを作るところはOKです。
ノードとノードのつながりをどう管理するかが問題ですが、接続先のリストも作ってはどうでしょう。
struct data { /* ノードを管理するリスト */
int x; /* ノード名 */
struct data *next; /* 次のノード */
struct path *list; /* 経路リストへのポインタ */
}
struct path { /* 接続先を管理するリスト */
struct path *next; /* 接続先 */
}
No.1
- 回答日時:
とりあえず, 「プログラムにおいてグラフをどのように表現するか」を考えないとダメだねぇ.
プログラム上は隣接行列でも隣接リストでも表現できるけど, 全経路探索するなら隣接リストで表現するのかなぁ.
で, 全経路探索ということだと結局はバックトラックすることになるんだけど, この辺は OK?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- XML マスターノード 1 2023/03/14 10:38
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- X(旧Twitter) Twitter検索から除外 1 2023/08/18 11:00
- Excel(エクセル) エクセル 行番号を自動で振るには 3 2022/08/08 20:19
- Excel(エクセル) 【エクセル】COUNTIFの検索条件が可変する数字の場合の数式 1 2022/09/27 15:34
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- その他(職業・資格) 弁理士試験の勉強方法について 1 2022/09/11 07:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SNMP リンクダウンとノードダ...
-
CPUの考え方を教えてください ...
-
同じタグ名の項目取得
-
【C#】TreeViewがクリックされ...
-
vbsのDOMDocumentで要素のText...
-
C#でtreeviewの指定ノードを選...
-
ツリービューのノードをダブル...
-
あるノードリストに、特定の名...
-
C:経路検索アルゴリズム
-
目標地点への移動
-
ルート要素ノードが2個ある場合?
-
あせんうぶり言語
-
XSLTで固定長データファイルを...
-
DOSコマンドラインからxmlファ...
-
XML、XSLTの適応エラー(IEから...
-
VBでXMLファイルを作ると xmlns...
-
VB.NETで最後フォのフォ...
-
MSXMLを使ってノードを削除した...
-
isnan・isnf関数が「識別子が見...
-
Access VBAでXMLが読み込めない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
あるノードリストに、特定の名...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
ノードとは
-
XML文書の指定した属性値を持つ...
-
ツリービューのノードをダブル...
-
2分探索木の高さを求めるプロ...
-
C# TreeView 効率良いノード追...
-
VB6.0でDOMを使用して...
-
スケールフリーネットワークをC...
-
C#でtreeviewの指定ノードを選...
-
複数のマックPCによる数値計算...
-
TreeViewに重複する値をセット
-
ツリービューの使い方が・・・
-
各ノードの行数取得
-
TreeViewの再表示のちらつきを...
おすすめ情報