Я новичок в Схеме, уже некоторое время использую Схему MIT.Я пытаюсь понять, как реализовать популярные графовые алгоритмы, такие как алгоритмы кратчайшего пути, BFS, DFS.Существуют ли какие-либо учебные пособия, которые могут помочь мне понять рекурсию, которая будет задействована, вместе с соответствующими структурами данных?Я пробовал поискать в Google, но это не дало мне хороших результатов.
РЕДАКТИРОВАТЬ : Я извиняюсь за то, что не уточнил ранее.Мой вопрос касался обхода всего графика, а не нахождения пути между узлом start и goal .Итак, для данного графика G (V, E) , где V - набор вершин, а E - набор ребер, начиная с любого узла n , какой путь сгенерирован так, что в конце этого обхода все узлы посещаются.
Большинство реализаций, которые я нашел во время Googling, были с узлами start и goal .Моя версия (один из ответов) выбирает одну вершину и посещает все остальные.
Возьмем, к примеру, следующий график: -
1 ----> 2 5
/| /|
/ | / |
/ | / |
/ | / |
/ | / |
4<----3 <---6 7
This DAG имеет (4-> 2), (2-> 3), (5-> 6) и (5-> 7), которые я не смог представить на диаграмме.: -)
Путь, пройденный начиная с 1 , может быть:
(1, 2, 3, 4, 5, 6, 7)