【发布时间】:2019-12-27 18:06:16
【问题描述】:
所以我有这个无向图要遍历,我应该找到所有连接到给定顶点的顶点。
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).,它就会进入一个无限循环。
我明白我为什么会有它,但我不知道如何避免它,也许我可以在这里找到一些帮助?
【问题讨论】:
-
你维护一个列表,这样它就不会开始循环了。
标签: prolog