任何人都可以帮助我如何在Prolog中实现谓词,它计算二叉树的所有节点数?
例如:
tree1(tree(1,
tree(2,
tree(3,nil,nil),
tree(4,nil,nil)),
tree(5,
tree(6,nil,nil),
tree(7,nil,nil))
)
).
会回来28.任何人都可以帮忙吗?
答案 0 :(得分:1)
琐碎的递归解决方案。 不尾递归。
treesum(nil, 0).
treesum(tree(X,T1,T2), S) :-
treesum(T1, S1), treesum(T2, S2),
S is X+S1+S2.