二叉搜索树更改插入方法返回类型

时间:2013-03-07 00:37:11

标签: java binary-search-tree

我为void的二叉搜索树编写了一个插入方法。我必须更改该方法,以便返回boolean,但我很困惑,因为我的插入辅助方法返回Node

有没有办法编写一些其他帮助方法来返回boolean?如果没有,我将如何更改我的方法以返回boolean

这是我的方法:

public void insert(E s) 
{
    root = insert(s, root);
    root.setParent(findParent(root.getData()));
} 

private Node<E> insert(E s, Node<E> T)
{
    //easiest case, empty tree, create new tree
    if(T == null)
    {
        T = new Node<E>(s);
    }
    //s is greater than T, insert on right subtree
    else if(s.compareTo(T.getData()) > 0)
    {
        T.setRight(insert(s, T.getRight()));
    }
    //s is less than T, insert on left subtree
    else if (s.compareTo(T.getData()) < 0)
    {
        T.setLeft(insert(s,T.getLeft()));
    }
    else
    {
        System.out.println("Item already present.");

    }
    return T;
}//Close insert

1 个答案:

答案 0 :(得分:1)

我假设如果插入成功,你应该返回true,否则falseinsert将您的第一个public boolean insert(E s) { try { root = insert(s, root); root.setParent(findParent(root.getData())); return true; } catch (Exception e) { return false; } } 函数更改为如下所示:

false

并更改辅助函数,以便在项目已存在时,它会抛出异常(对于主插入函数来捕获并触发private Node<E> insert(E s, Node<E> T) throws Exception { ... else { System.out.println("Item already present."); throw new Exception("Item already present."); } return T; } 返回)。

null

(正如Tutankhamen建议的那样)在插入失败的情况下从帮助方法返回public boolean insert(E s) { root = insert(s, root); if (root == null) { return false; } root.setParent(findParent(root.getData())); return true; } private Node<E> insert(E s, Node<E> T) { ... else { System.out.println("Item already present."); return null; } return T; } ,所以你有:

{{1}}