我想找到二叉树的最深元素,到目前为止,代码仅适用于空树或高度为一。
这是我的高度功能正常工作的代码。
deepest(node(L,X,R),X):- height(L,0),height(R,0).
deepest(node(L,_,R),X):- height(L,D1),height(R,D2), D1 > D2, deepest(L,X).
deepest(node(L,_,R),X):- height(L,D1),height(R,D2), D1 =< D2, deepest(R,X).
编辑:示例
?- deepest(node(node(node(leaf,8,leaf),20,leaf),
30,
node(node(leaf,88,leaf),33,node(leaf,888,leaf))),
X).
X = 8 ;
X = 88 ;
X = 888 ;
false.