所以我要遍历这个无向图,我应该找到所有与给定顶点相关的顶点。
edge(a, b).
edge(b, c).
edge(c, d).
edge(d, e).
edge(e, f).
edge(f, d).
edge(d, g).
edge(g, f).
edge(g, h).
edge(h, i).
edge(i, j).
edge(j, d).
edge(d, k).
edge(l, m).
edge(m, n).
undirectedEdge(X, Y) :- edge(X, Y).
undirectedEdge(X, Y) :- edge(Y, X).
connected(X, Y) :- undirectedEdge(X, Y).
connected(X, Y) :- connected(X, Z), connected(Z, Y), X \= Y.
一旦我输入connected(a, X).
,它就会陷入无限循环。
我知道为什么会有它,但是我不知道如何避免它,也许我可以在这里找到一些帮助?