Eclipse踩到方法

时间:2014-07-15 05:04:56

标签: java binary-search-tree

我因言语和想法而迷失。我正在使用多态二叉搜索树,我需要计算树的高度。 NonEmptyTree实现Tree接口并具有所有必需的方法。我遇到的问题实际上是调用高度方法。我不确定我做错了什么,这可能是因为我接近了我似乎无法找到可能是明显问题的项目。

还有一个名为EmptyTree的类,它也实现了Tree接口。以下是所有相关方法。

public class PolymorphicBST<K extends Comparable<K>, V>  {
    public int height() {
        return this.height();
}

public int height() {
    int lDepth = left.height();
    int rDepth = right.height();

    if (lDepth == 0 || rDepth == 0) {
        return 0;
    } else if (Math.abs(lDepth - rDepth) > 1) {
        return 0;
    }

    return Math.max(lDepth, rDepth) + 1;
}

heightAux方法中的代码用于计算树的实际高度。当我调试程序时,无论我插入了多少个断点以及多少次按下&#34;进入&#34;它就永远不会离开JUnit类。当我按下resume项目时,我得到一个StackOverflow错误。这是一个学校项目,所以我没有显示与问题相关的所有代码。任何帮助将不胜感激!!

所以,我知道摆脱了辅助方法,因为我认为没有必要达到这个高度。

2 个答案:

答案 0 :(得分:2)

  public int height() {
       return this.height();

你的height()方法通过说this.height()来调用自己。由于没有退出点,这将进入无限循环。

答案 1 :(得分:0)

我刚才发现了问题。我需要说root.height。树的根确定它是EmptyTree还是NonEmptyTree