任何人都可以幫助我如何實現在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.任何人都可以幫助嗎?
任何人都可以幫助我如何實現在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.任何人都可以幫助嗎?
平凡的遞歸解決方案。 不是尾遞歸。
treesum(nil, 0).
treesum(tree(X,T1,T2), S) :-
treesum(T1, S1), treesum(T2, S2),
S is X+S1+S2.
你確定23嗎?對我來說看起來像28,或者我誤解了這個問題。 – 2013-03-21 09:39:04
我的錯誤是28 – John 2013-03-21 14:32:20