Самый простой способ выяснить, существует ли путь, - реализовать поиск в глубину .Если вы выполняли другие виды рекурсивного программирования в Scheme, поиск в глубину будет довольно естественным.Идея состоит в том, что для каждого узла, если это место назначения, вы сделали;в противном случае вы возвращаетесь к каждому из его дочерних элементов.
Единственный улов заключается в том, что вам нужно отслеживать узлы, которые уже были посещены во время обхода, чтобы вы могли избежать посещения одного и того же узла дважды;в противном случае, если у вас есть график A <-> B <-> C, и вы проверяете, подключается ли A к C, вы можете бесконечно циклически переходить от A к B, затем от B к A, затем от A к B,и так всегда.