使用Prolog检查树是否是二叉树

时间:2017-04-22 11:16:48

标签: prolog

在我的实现中,二叉树被定义为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(树(a,nil,nil))在prolog上不会给我一个“是”?

1 个答案:

答案 0 :(得分:-1)

使用大写字母代表Prolog中的变量。