определить, имеет ли неориентированный граф путь между двумя вершинами - PullRequest
0 голосов
/ 23 февраля 2012

Мне нужна функция, которая определяет, существует ли путь между вершинами.

Ввод:

  • неориентированный граф в виде списка
  • две вершины

Например:

(is_it_a_path? '(2 ((1 2) (3 4))) 1 4)   ;; returns true

Функция также должна быть хвостовой рекурсивной.

Как мне это сделать?

1 Ответ

4 голосов
/ 23 февраля 2012

(бесплатный, онлайн) учебник Как разрабатывать программы имеет несколько разделов, которые могут быть вам полезны.

Вы говорите, что решение должно быть рекурсивным.Если вы имеете в виду, что все вызовы процедуры поиска должны быть в хвостовой позиции, то вам придется явно отслеживать посещенные узлы и пути к узлам.

Далее: я запуталсяпо вашему примеру;похоже, что входные данные ... это список длины два, содержащий целевой узел и некоторое представление графа?Но ... нет, я все еще в замешательстве.

Вам нужно объяснить, что означает ввод - например, как графики представляются как входные данные для вашей функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...