我需要在 Prolog 中使用循环构造有向图(在运行时),但我不确定如何表示它。我的要求是我需要在恒定时间内从一个顶点到达他的邻居。
是否可以将其表示为一棵树,例如:
t(left_son,V,right_son)
但如何解决循环?
我可以列出边:
graph([a,b,c,d],[e(a,b),e(b,c),e(c,a),e(c,d)])
要不就
[a->[b],b->[c],c->[a,d],d->[]]
但是如何避免在搜索邻居时调用列表中的函数“成员”,这会花费线性时间?
谢谢你的帮助