【发布时间】:2016-07-07 19:29:41
【问题描述】:
我有关系child(X,Y),其中X 是根/父节点,Y 是子节点,因此是有向边。我想从动态关系height(R, H) 中的特定根节点R 计算每个子树的高度H。
我之前的代码:
child(a,b).
child(a,f).
child(f,g).
child(f,h).
child(b,c).
child(c,d).
child(b,e).
child(c,l).
child(l,j).
height(R, H) :-
path(R,_,B,H),
write(B).
path(X,Y,[X,Y],1) :-
child(X,Y).
path(X,Y,[X|P],C) :-
child(X,Z),
path(Z,Y,P,Cn),
C is Cn+1.
它查找从节点R 开始的所有路径(和长度)。有没有办法递归地找到 n-nary 树中最长的路径?还是应该先将树结构保存在列表中?
【问题讨论】: