私はOCamlでチュートリアルを行っています(なぜ、私は言語の知識を広げることにしたのですか?)グラフで作業する。このチュートリアルでは、細かく実装できるグラフの幅優先探索を行う方法を教えてくれました。しかし、私は、深さ優先検索のアルゴリズムに苦労しています。これは、チュートリアルが行くところの1つです。「これを深さ優先の方法で試してみることをお勧めしますが、それをやってください。OCAML Depth-First Search
私はそのように実装しようとしています:let rec dfs graph start end
。つまり、私はエッジ()、開始ノード(start
)、終了ノード(end
)のリストを取るところでそれをやろうとしています。
私はエッジのリストを使用して、私のグラフを作成しました...しかし
let edges = [
("a", "b"); ("a", "c");
("a", "d"); ("b", "e");
("c", "f"); ("d", "e");
("e", "f"); ("e", "g")
];;
は、私は完全にここから行く場所について迷ってしまいました。どのように私を得るために任意のアドバイスですか?ありがとう。
一般的な1つの文の要約では、深さ優先検索は、未訪問ノードのキューをスタックで置き換えることを除いて、幅優先検索と同じです。この方法で幅優先探索の実装を変更しようとするかもしれません。 –
ノードの後継者を列挙する機能は、物事をより簡単にするかもしれません。 – PatJ