使用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(Tree(a, nil, nil)) 不会在序言中给我一个“是”?

雨果

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Prolog查找二叉树的高度

来自分类Dev

如何检查二叉树是否是BST?

来自分类Dev

检查二叉树是否平衡

来自分类Dev

二叉树平衡检查使用递归?

来自分类Dev

二叉树平衡检查使用递归?

来自分类Dev

使用二叉树

来自分类Dev

Prolog中的二叉树计数节点

来自分类Dev

枚举Prolog中的二叉树

来自分类Dev

Java简单二叉树检查等于

来自分类Dev

检查一个二叉树是否是另一个二叉树的子树

来自分类Dev

运行时间来检查一棵二叉树是否是另一棵二叉树的子树

来自分类Dev

检查一个二叉树是否是另一个二叉树的子树

来自分类Dev

检查二叉树是否平衡的时间复杂度

来自分类Dev

在二叉树中,检查给定节点是否为叶节点

来自分类Dev

检查二叉树是否具有相同的结构

来自分类Dev

如何检查给定的preorder,inorder和postorder遍历是否相同的二叉树?

来自分类Dev

我检查图是否为二叉树总是返回false

来自分类Dev

javascript二叉树,检查它是否是其自身的镜像

来自分类Dev

如何检查给定的preorder,inorder和postorder遍历是否相同的二叉树?

来自分类Dev

使用递归的二叉树的大小

来自分类Dev

使用旋转的二叉树变换

来自分类Dev

伪最近最少使用的二叉树

来自分类Dev

使用递归在二叉树中找到鞍点

来自分类Dev

C ++:使用加倍的节点复制二叉树

来自分类Dev

使用BFT的二叉树的最小深度?

来自分类Dev

使用__iter__读取二叉树

来自分类Dev

使用C ++以漂亮的方式打印二叉树

来自分类Dev

使用递归解释遍历二叉树(python)

来自分类Dev

伪最近最少使用的二叉树