我一直在研究isBST方法,该方法检查整数树是否是二进制搜索树。 现在,我试图创建一个实现Comparable的isBST方法,并检查Objects树是否为二进制搜索树。

我该怎么做才能使isBST方法对对象起作用?

这是我的isBST方法的实现,该方法仅适用于int Trees。

public boolean isBST(TreeNode root, int max, int min) {
    if (root == null) {
        return true;
    } else if (root.data >= max || root.data <= min) {
        return false;
    } else {
        return isBST(root.left, root.data, min) && isBST(root.right, max, root.data);
    }

}

我知道我的标题必须是这个

public <T extends Comparable<? super T>> boolean isBST(BinaryTreeNode<T> root) {

}

  ask by user3553265 translate from so

本文未有回复,本站智能推荐:

2回复

如何检查给定的BST是否有效? [重复]

这个问题已经在这里有了答案: 问题检查二叉树是否也是二叉搜索树 4个答案 我正在尝试检查给定的二叉树是否为二叉搜索树。 我想做的是对二进制树进行有序遍历,并将当前元素与前一个元素进行比较。 如果当前元素更大,我们继续检查,否则给定的树无效。 这就是我编写
1回复

序列化BST树

我试图序列化一个BST,以便可以被另一个程序读取。 输出的节点是其所有子代及其子代子代的节点。如果没有其他子代,则紧跟方括号。 我的方法输出 我需要投入 这将创建树
1回复

从BST(二进制搜索树)到链表列表

通过从左到右遍历数组并插入每个元素来创建二进制搜索树。 这棵树可能不是平衡树。 给定具有不同元素的二叉搜索树,请打印所有可能导致此树的数组。 为了回答这个问题,我编写了以下代码。 尽管如此,似乎它并不能在所有情况下都打印出所有可能导致树的数组。 您认为应该修改什么?
1回复

了解Java递归代码以检查树是否为有效的二进制搜索树

我正在研究Java中的数据结构(当前为Trees)。 我有一个确定树是否为有效BST的函数。 该功能正常运行,但是我无法理解其运行方式。 该功能如下: 我的实际树看起来像这样: 上面函数的输出是: 现在,谁能解释这里的执行情况吗? 如何对函数进行嵌套(递归)调用?
2回复

打印BST的直径

我已经编写了一个程序来查找BST的直径...有人可以给我一些有关如何打印找到的最大直径的节点(root.data)的想法吗? PS:最大深度可以找出树的高度。 谢谢
2回复

将节点插入BST

我的将节点插入BST的代码无法正常工作。 当我尝试显示时,它仅显示树的最后两个节点,即,它以某种方式覆盖了树中的节点。 我做错了什么? 提前致谢!
1回复

BST简单插入并递归

我正在尝试编写一个小的函数以将节点插入BST。 “插入”功能正常工作。 我将其更改为“ insert2”,在这里它不起作用。 我不知道为什么它不起作用。 运行时中“ insert”和“ insert2”之间有什么区别? 插入方式 insert2方法 节点定义
1回复

在BST类中实现某些方法

请考虑以下BSTNode和BST类的定义: 我如何在BST类中实现一种方法来计算BST中正确的子代数
2回复

NullPointerException将数据添加到BST

我正在实现一个BST,它具有3个类: BST , BSTNode和Profile 。 BST班 当我向BST添加单个条目时,它似乎工作正常,但是当我向BST添加两个或多个条目时,它给了我这个错误: 我已经努力解决了许多小时,如果有人可以暗示我要去哪里错,那将非常感激。
1回复

为什么插入BST两次插入根?

我创建了一个二进制搜索树类。 我创建了插入方法,高度方法和打印方法。 当我插入时,一切看起来都很好。 如果根为空,则创建一个新的根并设置该项。 但是,当我调用我的height方法时,它打印出2而不是1。当我调用我的print方法时,它打印出包括root在内的所有元素两次。 例如,我按以