Prolog二叉树高度和平衡检查

时间:2016-05-09 21:19:57

标签: prolog

我有一个二进制树林,如下所示:

node(a). node(b). node(c). node(d). node(e). 
node(f). node(g). node(h). 
node(i).
node(j). node(k). node(l).

edge(a,b). edge(a,c). edge(b,d). 
edge(f,g). edge(f,h). 
edge(j,k). edge(k,l).

我有一些功能:

isLeaf(X):- node(X), \+ edge(X, _).
isRoot(X):- node(X), \+ edge(_, X).

但是我陷入困境并保持平衡。 对于身高,我首先尝试通过所有路径看到高度:

height(X, H):- edge(X, Y), height(Y, N1), N1 is H + 1.
isBalanced(X):- edge(X, Y), edge(X, Z), Y \= Z isBalanced(Y), isBalanced(Z).

0 个答案:

没有答案