二叉树在我的实现中被定义为 Tree(Node, Left, Right) 。
我正在编写一个 isBinaryTree( Term ) 函数来检查Term是否是二叉树,因为 Term 可以是任何 Prolog 术语。
这是我的实现:
isBinaryTree(nil).
isBinaryTree(Tree(_,left,right)) :- isBinaryTree(left), isBinaryTree(right).
但它在以下输入中返回“no”。
isBinaryTree(Tree(a, nil, nil)).
虽然它返回“是”
isBinaryTree(nil)
为什么 isBinaryTree(Tree(a, nil, nil)) 不会在序言中给我一个“是”?
Prolog 中使用大写字母表示变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句