私はSchemeを使い慣れていて、いまのところMIT Schemeを使用しています。私は、最短パスアルゴリズム、BFS、DFSのような一般的なグラフアルゴリズムの実装方法を理解しようとしています。適切なデータ構造とともに、関係する再帰を理解するのに役立つチュートリアルがありますか?私は周りにグーグルを試みたが、それは私に良い結果を与えることに終わらなかった。Schemeのグラフプログラミング
EDIT:より具体的なものではないことをお詫び申し上げます。私の質問は、グラフ全体を走査し、開始とゴールノードの間のパスを見つけることには関係しませんでした。だから、Vは、頂点集合であり、E任意のノードNから出発して、エッジの集合であるグラフG(V、E)、与えられ、そのように生成されたパスは、の終わりに何このトラバーサル、すべてのノードが訪問されます。
グーグルで見つかったほとんどの実装は、開始点を持つものでした。とゴールノードです。私のバージョン(回答の1つ)は、1つの頂点を選択し、他のすべての頂点を訪問します。例えば
取り、次のグラフ: -
1 ----> 2 5
/| /|
/| /|
/| /|
/ | / |
/ | / |
4<----3 <---6 7
このDAGは、(5-(4-> 2)、(2-> 3)、(> 6 5-)とを有しています> 7)、私は図で表現することができません。 Pathはから出発してあってもよい横断:-)
:
(1、2、3、4、5、6、7)
コード化しようとしていることが不思議です。具体的には、通常、検索アルゴリズムには目標やターゲットの検索が含まれますが、プログラムのようには見えません。いくつかの目的のステートメント、契約、およびテストケースは、束に役立ちます! –
John、私は質問に短い要約を追加しました!もし私が何かを見逃しているなら教えてください! – Gooner